第一篇我们深入浅出的谈谈决策树,严格来说,是决策树的基本原理。
参考
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:基尼指数,既可以用于分类也可以用于回归
网友评论