决策树(Decision Tree)算法是一种基本的分类与回归方法,根据数据的属性采用树状结构建立决策模型。决策树模型常常用来解决分类和回归问题。常见的算法包括CART(Classification And Regression Tree)、ID3、C4.5、C5.0、随机森林(Random Forest) 等。
1.基本流程
决策树的学习策略是分而治之,在训练时遇到当前结点包含的样本全属于同一类别,那么就不需要再进行划分。
2.划分选择
主要目标:把样本变得越来越纯,具体来说是期望决策树的分支结点所包含的样本尽可能地属于同一类别。
2.1 信息增益
假定样本集合 <math xmlns="http://www.w3.org/1998/Math/MathML"> D D </math>D 中第 <math xmlns="http://www.w3.org/1998/Math/MathML"> k k </math>k类样本所占比例为 <math xmlns="http://www.w3.org/1998/Math/MathML"> p k ( k = 1 , 2 , ... , ∣ y ∣ ) p_k(k=1,2,..., |y|) </math>pk(k=1,2,...,∣y∣)
样本集合 <math xmlns="http://www.w3.org/1998/Math/MathML"> D D </math>D的信息熵:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> E n t ( D ) = − ∑ k = 1 ∣ y ∣ p k l o g 2 p k Ent(D)=-\sum_{k=1}^{|y|}{p_klog_2p_k} </math>Ent(D)=−k=1∑∣y∣pklog2pk
信息增益的定义:划分前的信息熵减去划分后的信息熵。
信息增益公式:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> G a i n ( D , a ) = E n t ( D ) − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ E n t ( D ) Gain(D,a)=Ent(D)\ -\sum_{v=1}^{V}{\frac{|D^v|}{|D|}Ent(D)} </math>Gain(D,a)=Ent(D) −v=1∑V∣D∣∣Dv∣Ent(D)
<math xmlns="http://www.w3.org/1998/Math/MathML"> D v D^v </math>Dv是使用某个属性时对数据集 <math xmlns="http://www.w3.org/1998/Math/MathML"> D D </math>D的划分,一般来说信息增益越大,使用属性 <math xmlns="http://www.w3.org/1998/Math/MathML"> a a </math>a所划分得到的"纯度提升"越大。
ID3决策树:以信息增益准则划分属性
那么问题来了,样本集合纯度究竟有什么影响?
在机器学习中,样本集合纯度对模型训练和性能有很大影响。如果样本集合中目标类别样本数量很少,模型就很难学习到目标类别的特征,从而导致模型性能不佳。相反,如果样本集合中目标类别样本数量过多,模型就很容易过拟合,无法泛化到新的数据集。
因此,在构建机器学习模型时,需要对样本集合进行筛选和优化,以提高样本集合纯度,从而提高模型训练和预测的准确性。同时,也需要避免过拟合现象的发生,以提高模型的泛化能力。
2.2 增益率
增益率定义:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> G a i n _ r a t i o ( D , a ) = G a i n ( D , a ) I V ( a ) Gain\_ratio(D,a)=\frac{Gain(D,a)}{IV(a)} </math>Gain_ratio(D,a)=IV(a)Gain(D,a)
其中IV(a)的定义:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> I V ( a ) = − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ l o g 2 ∣ D v ∣ ∣ D ∣ IV(a)=\ -\sum_{v=1}^{V}{\frac{|D^v|}{|D|}log_2}\frac{|D^v|}{|D|} </math>IV(a)= −v=1∑V∣D∣∣Dv∣log2∣D∣∣Dv∣
增益率准则对可取值数目较少的属性有所偏好,意味着在决策树算法中,会倾向于选择那些具有较少可能值的属性进行划分。这是因为增益率准则认为,具有较少可能值的属性在划分数据时能够提供更多的信息。
C4.5决策树:采用启发式方法,具体步骤如下
step 1. 在候选划分属性中找出信息增益高于平均水平的属性
step 2. 在上一步的基础上,选择增益率最高的
2.3 基尼指数
CART决策树:可用于分类任务和回归任务,它使用基尼指数来划分属性,数据集 <math xmlns="http://www.w3.org/1998/Math/MathML"> D D </math>D的纯度采用基尼值来进行度量。
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> G i n i ( D ) = ∑ k = 1 ∣ y ∣ ∑ k ′ ≠ k p k p k ′ = 1 − ∑ k = 1 ∣ y ∣ p 2 k Gini(D)=\ \sum_{k=1}^{|y|}\sum_{k^\prime\neq k}{p_kp_{k^\prime}}=1-\sum_{k=1}^{|y|}{p^2}_k </math>Gini(D)= k=1∑∣y∣k′=k∑pkpk′=1−k=1∑∣y∣p2k
基尼值越小,数据集的纯度越高。
基尼指数的定义:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> G i n i _ i n d e x ( D , a ) = ∑ v = 1 V ∣ D v ∣ ∣ D ∣ G i n i ( D v ) Gini\index(D,a)=\sum{v=1}^{V}{\frac{|D^v|}{|D|}Gini(D^v)} </math>Gini_index(D,a)=v=1∑V∣D∣∣Dv∣Gini(Dv)
最优划分属性:在候选属性集合中选择使划分后基尼指数最小的属性
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> a ∗ = a r g m i n G i n i _ i n d e x ( D , a ) a_\ast=arg\ min\ Gini\_index(D,a) </math>a∗=arg min Gini_index(D,a)
其中 <math xmlns="http://www.w3.org/1998/Math/MathML"> a ∈ A a\in A </math>a∈A
总结
决策树算法通过选择不同的划分准则来优化决策树的构建,从而提高模型的训练和预测准确性。同时,这些准则也影响了决策树的纯度和泛化能力。
参考资料
[1] 周志华《机器学习》,第四章4.1和4.2
[2]【吃瓜教程】《机器学习公式详解》(南瓜书)与西瓜书公式推导直播合集