机器学习之决策树(自学笔记)

文章目录

    • 一,决策树
    • 二,几个概念
    • 三,不同算法下的决策树
      • (一)ID3算法
      • (二) C4.5算法
      • (三)CART算法

一,决策树

决策树是一种分类的方法,本质上采取一系列的规则来对数据进行分类。

二,几个概念

熵:在物理学中描述的是封闭系统的混乱程度。

信息熵:可以理解为和熵的概念差不多,他主要是用于衡量数据的混乱程度。
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=1np(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(YX)
基尼系数:是用来衡量一个国家或地区居民收入差距的常用指标。

基尼系数在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=1npi(1pi)

三,不同算法下的决策树

(一)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=1np(x)log2p(x)
熵越大,信息增益越大,说明数据划分的越纯。

(二) C4.5算法

C4.5算法在ID3算法的基础上进行了优化

步骤:

1,计算当前节点的类别熵 I n f o ( D ) Info(D) InfoD

2,计算当前节点的属性熵 I n f o ( A i ) Info(A_i) InfoAi

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) HAi

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=1npi(1pi)
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=1p(x=0)2p(x=1)2
可以看出,当某一类的概率为0时,Gini=0,此时数据被分的最纯;当两类概率都为0.5时,此时Gini=0.5,此时数据最为混乱。

你可能感兴趣的:(机器学习,决策树,算法)