一,决策树
决策树是一种分类的方法,本质上采取一系列的规则来对数据进行分类。
二,几个概念
熵:在物理学中描述的是封闭系统的混乱程度。
信息熵:可以理解为和熵的概念差不多,他主要是用于衡量数据的混乱程度。
H
(
x
)
=
−
∑
i
=
1
n
p
(
x
)
l
o
g
2
p
(
x
)
H(x) = -\sum\limits_{i=1}^np(x)log_2 p(x)
H(x)=−i=1∑np(x)log2p(x)
信息增益:在得知某个信息后,事件的不确定性下降的程度。
由下面的公式可知,就是用熵减去某个条件下的熵。
g
(
X
,
y
)
=
H
(
Y
)
−
H
(
Y
∣
X
)
g(X,y) = H(Y) - H(Y|X)
g(X,y)=H(Y)−H(Y∣X)
基尼系数:是用来衡量一个国家或地区居民收入差距的常用指标。
基尼系数在0~1之间。基尼系数越接近 0 表明收入分配越是趋向于平等,基尼系数越接近于1收入分配越是趋近于不平衡。国际惯例把 0.2 以下视为 收入绝对平均,0.2-0.3 视为收入比较平均;0.3-0.4 视为收入相对合理;0.4-0.5 视为收入差距较大,当基尼 系数达到 0.5 以上时,则表示收入悬殊。
g
i
n
i
=
∑
i
=
1
n
p
i
(
1
−
p
i
)
gini = \sum\limits_{i=1}^n p_i (1-p_i)
gini=i=1∑npi(1−pi)
三,不同算法下的决策树
(一)ID3算法
ID3算法也称之为信息熵算法,我们知道,熵是衡量混乱程度,可以说对是不确定性的衡量。ID3算法采用的的公式就是信息熵的公式
H
(
x
)
=
−
∑
i
=
1
n
p
(
x
)
l
o
g
2
p
(
x
)
H(x) = -\sum\limits_{i=1}^np(x)log_2 p(x)
H(x)=−i=1∑np(x)log2p(x)
熵越大,信息增益越大,说明数据划分的越纯。
(二) C4.5算法
C4.5算法在ID3算法的基础上进行了优化
步骤:
1,计算当前节点的类别熵 I n f o ( D ) Info(D) Info(D)
2,计算当前节点的属性熵 I n f o ( A i ) Info(A_i) Info(Ai)
3,计算各个属性的信息增益 G a i n ( A i ) = I n f o ( D ) − I n f o ( A i ) Gain(A_i) = Info(D) - Info(A_i) Gain(Ai)=Info(D)−Info(Ai)
4,计算各个属性的分类信息度量 H ( A i ) H(A_i) H(Ai)
5,计算各个属性的信息增益率 I G R = G a i n ( A i ) / H ( A i ) IGR = Gain(A_i) / H(A_i) IGR=Gain(Ai)/H(Ai)
对比ID3来说:
ID3在选取方面,如果某个类别的属性特别的多,就会更偏向于这个类别。
C4.5克服了这一不足。
(三)CART算法
CART算法是使用Gini系数对数据进行分类
g
i
n
i
=
∑
i
=
1
n
p
i
(
1
−
p
i
)
gini = \sum\limits_{i=1}^n p_i (1-p_i)
gini=i=1∑npi(1−pi)
Gini 系数越小,代表集合中的数据越纯,所有我们可以计算分裂前的值在按照某个维度对数据集进行划分,然后可以去计算多个节点的 Gini 系数。
假如说有两类数据,记为0,1,总共的样本数为n,0类的数据有
n
1
n_1
n1个,1类的数据有
n
2
n_2
n2个,所以是第0类和第1类的概率分别为
p
(
x
=
0
)
=
n
1
n
p
(
x
=
1
)
=
n
2
n
p(x=0)=\frac{n_1}{n} \\ p(x=1)=\frac{n_2}{n}
p(x=0)=nn1p(x=1)=nn2
那么Gini系数的计算如下
G
i
n
i
=
1
−
p
(
x
=
0
)
2
−
p
(
x
=
1
)
2
Gini = 1-p(x=0)^2-p(x=1)^2
Gini=1−p(x=0)2−p(x=1)2
可以看出,当某一类的概率为0时,Gini=0,此时数据被分的最纯;当两类概率都为0.5时,此时Gini=0.5,此时数据最为混乱。