决策树专题_以python为工具Python机器学习系列

Posted 侯小啾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了决策树专题_以python为工具Python机器学习系列相关的知识,希望对你有一定的参考价值。

决策树专题_以python为工具【Python机器学习系列(十一)】

文章目录


      ʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞ
                 
    ʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞ


大家好,我是侯小啾!

今天分享的内容是,决策树的原理及其python实现。做决策树之前,往往需要首先选择特征选择的指标,常用的指标有信息增益、信息增益比、基尼系数等。常用的决策树算法有ID3、C4.5、CART算法等,其中,ID3算法使用 信息增益 缺陷是,倾向于分类较多的特征;C4.5算法使用信息增益率;CART算法使用基尼系数。下面先对这些指标进行说明,然后展示决策树代码。


1.关于信息熵的理解

在信息论中,使用 (Entropy)来描述随机变量分布的不确定性。
假设对随机变量X,其可能的取值有 x 1 , x 2 , . . . , x n x_1,x_2,...,x_n x1,x2,...,xn。即有n种可能发生的结果。其对应发生的概率依次为 p 1 , p 2 , . . . , p n p_1,p_2,...,p_n p1,p2,...,pn,则事件 p i p_i pi对应的信息熵为:

     H ( X ) = H ( p ) = ∑ i = 1 n p i log ⁡ 1 p i = − p i log ⁡ p i H(X)=H(p)=\\sum_i=1^np_i\\log \\frac1p_i=-p_i\\log p_i H(X)=H(p)=i=1npilogpi1=pilogpi

信息熵中log的底数通常为2,理论上可以使用不同的底数。

如何理解信息熵呢,假设已知今天是周日,则对于“明天是周几”这件事,只有一种可能的结果:是周一,且p=1。则“明天是周几”的信息熵 H ( X ) H(X) H(X) − 1 × log ⁡ 1 = 0 -1×\\log 1=0 1×log1=0,取信息熵的最小值0。表示“明天是周几”这个话题的不确定性很低,明天周几很确定。

再比如抛一枚硬币,则结果为正面和反面的概率都是0.5。则信息熵为 l o g 2 log2 log2,相比“明天周几”这件事的信息熵稍大些了。

假设某事情有100中可能的结果,每种结果发生的概率为0.01。则 H ( X ) = l o g 100 H(X)=log100 H(X)=log100,对于等概率均匀分布的事件,不确定的结果种类越多,则熵越大。


2.信息增益

什么是信息增益?可以通过这个示例来理解。
假设给定某连续7天样本数据,在这七天内,张三在工作日(周一至周五)中有两天打了篮球,在周六周日两天中有一天打了篮球。则我们可以得出:张三在任意一天打篮球的概率为 3 7 \\frac37 73,张三在工作日打篮球的概率为 2 5 \\frac25 52,张三在周六、周日打篮球的概率为 1 2 \\frac12 21

张三打篮球的信息熵为 H ( X ) = − 3 7 log ⁡ 3 7 − 4 7 log ⁡ 4 7 H(X)=-\\frac37\\log\\frac37-\\frac47\\log\\frac47 H(X)=73log7374log74

张三在工作日打篮球的信息熵为 H ( X ∣ A 1 ) = − 2 5 log ⁡ 2 5 − 3 5 log ⁡ 3 5 H(X|A_1)=-\\frac25\\log\\frac25-\\frac35\\log\\frac35 H(XA1)=52log5253log53

张三在非工作日打篮球的信息熵为 H ( X ∣ A 2 ) = − 1 2 log ⁡ 1 2 − 1 2 log ⁡ 1 2 = log ⁡ 2 H(X|A_2)=-\\frac12\\log\\frac12-\\frac12\\log\\frac12=\\log2 H(XA2)=21log2121log21=log2

则张三在工作日打篮球的信息增益为 张三打篮球的信息熵 减去 张三在工作日打篮球的信息熵,即

            H ( X ) − H ( X ∣ A 1 ) H(X)-H(X|A_1) H(X)H(XA1)

张三在非工作日打篮球的信息增益为 张三打篮球的信息熵 减去 张三在非工作日打篮球的信息熵。

            H ( X ) − H ( X ∣ A 2 ) H(X)-H(X|A_2) H(X)H(XA2)

信息增益的公式可以表述为:

            H ( X ) − H ( X ∣ A i ) H(X)-H(X|A_i) H(X)H(XAi)

看到这里,大概可以明白,信息增益,即在衡量某事件 A i A_i Ai的发生对目标话题的不确定性的降低程度。


3.信息增益比

信息增益比是对不确定性降低程度的另一种衡量方式,即以比值的形式来呈现,其在计算出信息增益的基础上,再使用信息增益除以 在事件 A i A_i Ai发生情况下的信息熵,即为信息增益比,公式表示为

            H ( X ) − H ( X ∣ A i ) H ( X ∣ A i ) \\fracH(X)-H(X|A_i)H(X|A_i) H(XAi)H(X)H(XAi)

这里不再使用示例进行说明。


4.基尼指数

基尼指数的公式为:

            G i n i ( X ) = 1 − ∑ i = 1 k p i 2 Gini(X)=1-\\sum_i=1^kp_i^2 Gini(X)=1i=1kpi2

基尼指数用来反应样本集合的纯度(或者说是“不纯度”),当所有样本都只属于一个类别时,基尼指数值为0,纯度最高(不纯度最小)。基尼指数越大,则纯度越低(不纯度越大)。

依然可以假设给定某连续7天样本数据,在这七天内,张三在工作日(周一至周五)中有两天打了篮球,在周六周日两天中有一天打了篮球。则事件“任意一天张三是否打篮球”的基尼系数为 1 − ( 3 7 ) 2 − ( 4 7 ) 2 1-(\\frac37)^2-(\\frac47)^2 1以上是关于决策树专题_以python为工具Python机器学习系列的主要内容,如果未能解决你的问题,请参考以下文章

集成学习之随机森林案例专题Python机器学习系列(十七)

文本特征提取专题_以python为工具Python机器学习系列

python机器学习之lightBGM

python机器学习之lightBGM

人工智能机器学习之使用Python生成ID3决策树

机器学习决策树ID3算法,手把手教你用Python实现