美文网首页机器学习
决策树与随机森林——原理篇(一)

决策树与随机森林——原理篇(一)

作者: 芋圆学徒 | 来源:发表于2021-12-16 16:30 被阅读0次

第一篇我们深入浅出的谈谈决策树,严格来说,是决策树的基本原理。
参考

GitHub - datawhalechina/pumpkin-book: 《机器学习》(西瓜书)公式推导解析,在线阅读地址:https://datawhalechina.github.io/pumpkin-book
周志华《Machine Learning》 学习笔记系列--目录 - 简书 (jianshu.com)
《机器学习》 周志华

问题一、什么是决策树?

决策树是一个有监督分类与回归算法
换种说法呢
一个年轻人去公司面试,面试官选人的过程可以看作一次种树
面试官:是不是研究生毕业?
年轻人:是
面试官:是不是毕业于双一流大学?
年轻人:是
面试官:本科也是双一流?
年轻人:不是
面试官:实习单位是不是世界五百强?
年轻人:是
最后,面试官决定初试通过。

问题二、在我们做选择时,哪些是主要矛盾?哪些是次要矛盾?(即如何选择根节点和内部节点?)

理论上,你可以组合不同的条件来问,进而筛选合格的实习生,如此一来,就存在众多的问题组合,那种组合最优呢?这就是决策树算法的第一个关键,得到全局最优解。
另一方面,有关实习生的所有条件你都可以问,是不是研究生,毕业学校是不是985, 211,实习单位是不是世界500强,平常是否热爱运动等等,但问题琐碎,很容易造成一个现象,“过拟合”。当你使用这200个问题去问另一个人时(比如你问了第一位实习生200个问题,得到了一个优秀的员工,此时你为了检验第二个实习生的能力),你可能根本得不到关于这个人的有用信息。如此我们遇到了决策树的第二个关键问题,何时让决策树停止,防止过拟合?

一、如何选择根节点和内部节点

构建决策树采用贪婪算法,只考虑当前纯度差最大的情况作为分割点

因此,这里我们要理解这三个概念:
1)熵:混乱程度。系统越有序,熵值越低
定义:H=- ∑1-i(p(i) * log2(P(i) )
注:其中Pi是发生某结局事件的概率,熵值范围0-1,越大代表混乱程度越大

当 分组中有两个变量,其概率分别为50%,50%时,其熵 = - (0.5*log_2( 0.5)+0.5*log_2( 0.5))= 1
当 结局事件只有一个,其熵 = -1*log_2( 1 ) - 0*log_2( 0 ) =0
所以当Entropy最大为1的时候,是分类效果最差的状态,当它最小为0的时候,是完全分类的状态。因为熵等于零是理想状态,一般实际情况下,熵介于0和1之间。熵的不断最小化,实际上就是提高分类正确率的过程

2)信息增益及信息增益率
信息增益:某特征划分数据集,前后熵的差值;信息增益越大,不确定性越小
定义:Gain (D, A) = H(D) - H(D|A)
注:H(D)是分组前的熵值,H(D|A)是根据特征A分组后的熵之和

信息增益率:增益比率度量是用前面的增益度量Gain(D,A)和所分离信息度量SplitInformation的比值来共同定义的
定义:GainRatial (A) = Gain (D, A) / H(D)
注:Gain (D, A)是以A作为内部结点的信息增益,A的取值越多,H(D)分类前的熵值就越大

3)基尼值及基尼指数
基尼值Gini(D):从数据集D中随机抽取两个样本,起类别标记不一致的概率,故 Gini(D) 值越小,数据集D的纯度越高
定义:Gini(D)= p(1-p)
注:在数据集D中,HCC4例,ICC2例,则 Gini(D) = 4/6(1 - 4/6) = 2/9

基尼指数Gini_index(D):一般,选择使划分后基尼系数最小的属性作为最优化分属性

基尼指数
注:数据集D被划分后,计算每一组的Gini值,求算数平方和后最小,提示我们数据越纯正
南瓜书
南瓜书

总结

因此,作为一个企业精英,每一次的决策背后都有着大量考虑
目前,比较常用的决策树有ID3,C4.5和CART(Classification And Regression Tree),他们选择节点的原理稍有不同
ID3: 信息增益
C4.5:信息增益率
CART:基尼指数,既可以用于分类也可以用于回归

相关文章

  • 决策树与随机森林——原理篇(一)

    第一篇我们深入浅出的谈谈决策树,严格来说,是决策树的基本原理。参考 GitHub - datawhalechina...

  • 随机森林

    1、什么是随机森林? 随机森林就是用随机的方式建立一个森林,在森林里有很多决策树组成,并且每一棵决策树之间是没有关...

  • 随机森林-Python

    这里随机森林分类器的预测可视化与决策树差不多,因为随机森林就是决策树投票得到的结果。代码: 关键代码:plt.sc...

  • 随机森林原理

    1、什么是随机森林?随机森林就是用随机的方式建立一个森林,在森林里有很多决策树组成,并且每一棵决策树之间是没有关联...

  • 随机森林分类器

    随机森林,是用随机的方式建立一个森林,森林里面有很多的决策树组成,随机森林的每一棵决策树之间是没有关联的。在得到森...

  • 1 . spark ml 随机森林练习代码讲解

    一,算法简介 随机森林是决策树的集成算法。随机森林包含多个决策树来降低过拟合的风险。随机森林同样具有易解释性、可处...

  • 决策树与随机森林——原理篇(二)

    第一篇我们主要关注了根结点及内部结点的选择第二篇主要关注如何处理“过拟合”现象参考 大致了解机器学习——AI 算法...

  • sklearn-随机森林分类器

    随机森林(1.11.2.1),随机森林的参数属性方法和决策树差不多。(RandomForestClassifier...

  • 决策树与随机森林及其在SparkMllib中的使用

    一.概念 决策树和随机森林:决策树和随机森林都是非线性有监督的分类模型。 决策树是一种树形结构,树内部每个节点表示...

  • 基于R语言的随机森林算法

    随机森林基本原理 随机森林,从字面理解就是随机生成的树构成的森林,树与树之间是独立的。每一颗树就是决策树,所以说随...

网友评论

    本文标题:决策树与随机森林——原理篇(一)

    本文链接:https://www.haomeiwen.com/subject/uyqlfrtx.html