机器学习之决策树原理
如果你觉得这篇文章对你有帮助,记得点赞收藏哦,后续我还会更新更多与机器学习相关的算法内容,包括对机器学习库sklearn库函数的讲解,以及算法的简单代码实现。
看完这篇文章后,可以了解一下我写的sklearn决策树模型参数详解的文章。深入理解并使用决策树:
机器学习之决策树(sklearn库函数详解)
1 决策树简介
决策树是一种基于树模型使用连续特征或离散变量的机器学习算法,用于分类跟回归。经典的三种决策树算法ID3,C4.5,CART。
2 数学知识
在了解决策树原理前,我们需要理解几个基本的数学知识。先展示图片数据集,为了增加下面的公式理解。
① 信息熵
信息熵表示信息的混乱程度,在决策树算法中,都是对标签求信息熵。
信息熵的公式为
H ( Y ) = − ∑ n = 1 N p i l o g p i H(Y)= -\sum_{n=1}^N\ p_ilogp_i H(Y)=−n=1∑N pilogpi
比如对上图中瓜求他的信息熵,如下就是过程
H ( 瓜 ) = − ∑ n = 1 N p i l o g p i H(瓜)= -\sum_{n=1}^N\ p_ilogp_i H(瓜)=−∑n=1N pilogpi
= − ( p 好 l o g p 好 + p 坏 l o g p 坏 ) \ \ \ \ \ \ \ \ \ \ \ \ =-(\ p_好logp_好+p_坏logp_坏) =−( p好logp好+p坏logp坏)
= − ( 8 17 l o g 8 17 + 9 17 l o g 9 17 ) \ \ \ \ \ \ \ \ \ \ \ \ =-(\cfrac{8}{17}log\cfrac{8}{17}+\cfrac{9}{17}log\cfrac{9}{17}) =−(178log178+179log179)
从公式中我们可以发现:如果全部都是好瓜,带入计算那么的到的瓜的信息熵就是0;如果好瓜坏瓜参半,那么得到的信息熵最大。
也就是说,如果标签中的大家占比都差不多,此时该标签就越混乱,信息熵就越大,正好反应了信息熵的概念,表示信息的混乱程度。
② 条件熵
条件熵从名字上理解就是针对某一条件的信息熵,实际上也是如此。在决策树算法中,我们都是指针对某一特征的信息熵,而这个信息熵就是标签的信息熵。
比如针对特征纹理的瓜的信息熵(特征纹理的条件熵)
就像我们一开始在信息熵中所说,决策树都是针对标签求信息熵,只不过这次是在特定条件下,我们给了它一个名字,叫条件熵。
条件熵的公式为
H ( Y ∣ X ) = ∑ n = 1 N p i H ( Y ∣ X = x i ) H(Y|X)= \sum_{n=1}^N\ p_i\ H(Y|X=x_i) H(Y∣X)=n=1∑N pi H(Y∣X=xi)
看着这个公式是不是人有点懵,别急我们看看求纹理特征的条件熵你就理解了,纹理总共有三种,清晰,稍糊,模糊,分别占比为 9 17 \cfrac{9}{17} 179, 5 17 \cfrac{5}{17} 175, 3 17 \cfrac{3}{17} 173 。
H ( 瓜 ∣ 纹理 ) = ∑ n = 1 3 p i H ( Y ∣ X = x i ) H(瓜|纹理)= \sum_{n=1}^3\ p_i\ H(Y|X=x_i) H(瓜∣纹理)=∑n=13 pi H(Y∣X=xi)
= 9 17 H ( 瓜 ∣ 纹理 = 清晰 ) + 5 17 H ( 瓜 ∣ 纹理 = 稍糊 ) + 3 17 H ( 瓜 ∣ 纹理 = 模糊 ) \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ = \cfrac{9}{17}\ \ H(瓜|纹理=清晰)+\cfrac{5}{17}\ \ H(瓜|纹理=稍糊)+\cfrac{3}{17}\ \ H(瓜|纹理=模糊) =179 H(瓜∣纹理=清晰)+175 H(瓜∣纹理=稍糊)+173 H(瓜∣纹理=模糊)
此时要求的就是三种条件下的信息熵了,那么在清晰条件下好瓜占比 8 9 \cfrac{8}{9} 98,在稍糊条件下好瓜占比 1 5 \cfrac{1}{5} 51,在模糊条件下好瓜占比 0 0 0,此时推导继续往下写。
H ( 瓜 ∣ 纹理 ) = 9 17 ( − 8 9 l o g 8 9 − 1 9 l o g 1 9 ) + 5 17 ( − 1 5 l o g 1 5 − 4 5 l o g 4 5 ) + 3 17 ( − 0 l o g 0 − 1 l o