一,决策树
决策树是一种分类的方法,本质上采取一系列的规则来对数据进行分类。
二,几个概念
熵:在物理学中描述的是封闭系统的混乱程度。
信息熵:可以理解为和熵的概念差不多,他主要是用于衡量数据的混乱程度。
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,此时数据最为混乱。