决策树专题_以python为工具Python机器学习系列
Posted 侯小啾
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了决策树专题_以python为工具Python机器学习系列相关的知识,希望对你有一定的参考价值。
决策树专题_以python为工具【Python机器学习系列(十一)】
文章目录
- 1.关于信息熵的理解
- 2.信息增益
- 3.信息增益比
- 4.基尼指数
- 5.DecisionTreeClassifier()与DecisionTreeRegressor()
- 6.决策树分类 - 葡萄酒分类_DecisionTreeClassifier
- 7.决策树回归 -加利福尼亚房价_DecisionTreeRegressor
ʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞ
ʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞ
大家好,我是侯小啾!
今天分享的内容是,决策树的原理及其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)=−73log73−74log74
张三在工作日打篮球的信息熵为
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(X∣A1)=−52log52−53log53
张三在非工作日打篮球的信息熵为
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(X∣A2)=−21log21−21log21=log2
则张三在工作日打篮球的信息增益为 张三打篮球的信息熵 减去 张三在工作日打篮球的信息熵,即
H
(
X
)
−
H
(
X
∣
A
1
)
H(X)-H(X|A_1)
H(X)−H(X∣A1)
张三在非工作日打篮球的信息增益为 张三打篮球的信息熵 减去 张三在非工作日打篮球的信息熵。
H
(
X
)
−
H
(
X
∣
A
2
)
H(X)-H(X|A_2)
H(X)−H(X∣A2)
信息增益的公式可以表述为:
H
(
X
)
−
H
(
X
∣
A
i
)
H(X)-H(X|A_i)
H(X)−H(X∣Ai)
看到这里,大概可以明白,信息增益,即在衡量某事件 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(X∣Ai)H(X)−H(X∣Ai)
这里不再使用示例进行说明。
4.基尼指数
基尼指数的公式为:
G i n i ( X ) = 1 − ∑ i = 1 k p i 2 Gini(X)=1-\\sum_i=1^kp_i^2 Gini(X)=1−∑i=1kpi2
基尼指数用来反应样本集合的纯度(或者说是“不纯度”),当所有样本都只属于一个类别时,基尼指数值为0,纯度最高(不纯度最小)。基尼指数越大,则纯度越低(不纯度越大)。
依然可以假设给定某连续7天样本数据,在这七天内,张三在工作日(周一至周五)中有两天打了篮球,在周六周日两天中有一天打了篮球。则事件“任意一天张三是否打篮球”的基尼系数为
1
−
(
3
7
)
2
−
(
4
7
)
2
1-(\\frac37)^2-(\\frac47)^2
1以上是关于决策树专题_以python为工具Python机器学习系列的主要内容,如果未能解决你的问题,请参考以下文章