数据科学个人笔记:决策树算法(ID3、C4.5、CART)

一、一些指标的定义

1.熵的定义:用来表示随机变量不确定性的度量(衡量一组数据对于某一特征的不确定性程度),H(X)=-sum(pi*log(pi)),pi表示第i类数据出现的概率(所以衡量熵时要选取一个特征为度量标准)。其中熵的单位当log以2为底为比特,以e为底为纳特。0<=H(x)<=log(类别数)。当类别只取两类如0或1时(二分类问题),H(p)=(-p*log2p)+(-(1-p)*log2(1-p))。当两个类别各一半时熵取到最大,当其中一类完全取不到时熵取到最小。

2.条件熵的定义:条件熵表示在已知随机变量X的条件下随机啊变量Y的不确定性,即衡量一组数据中当已知某特征符合某条件时对于另一特征的不确定性程度。H(Y|X)=sum(pi*H(Y|X=xi))。

3.信息增益:表示特征X信息确定后特征Y的不确定性减少的程度。特征A对数据集D的信息增益g(D,A)=H(D)-H(D|A)。在决策树算法中,即原数据集对于所关注的类别分类的熵-依照A特征将该特征等于不同值的不同数据在决策树的下一层分在不同的节点上的这些数据的熵的加权总和,权重为各子节点数据量占总数据量的比例。一般熵H(Y)与H(Y|X)之差称为互信息,此处等价于信息增益。

4.信息增益比:以信息增益作为划分训练数据集的特征,存在偏向与选择取值较多的特征的问题。使用信息增益比为标准可校正此问题,信息增益比gr(D,A)=g(D,A)/Ha(D),其中Ha(D)表示sum(各节点数据量占总数据比例*log2各节点数据量占总数据比例)。

5.基尼系数:gini(p)=sum(pi(1-pi))=1-sum(pi^2),对于二分类问题基尼指数为gini(D)=2p(1-p)。

 

二、两种算法

1.ID3算法

从根节点开始,对每个节点中的数据依照信息增益准则遍历各特征的划分请款个,选取使信息增益最大的特征建立子节点,当某节点最优划分的信息增益小于阈值时停止划分该节点。

2.C4.5算法

同上,将指标改成信息增益比。

三、剪枝策略

1.损失函数+正则项法:若我们构建的树为T,则在后剪枝中,设需要最小化的损失函数为Ca(T)=sum(各叶节点样本数*各叶节点对关注特征的熵值)+alfa*叶节点数。Alfa>=0越大对复杂度惩罚越大。

遍历每对叶节点进行回缩,若一次回缩后的树它的损失函数值变小了,则执行回缩,直到无法继续。

2.其他剪枝策略:预剪枝,深度、叶子节点数、叶子节点样本数、基尼系数差等。

 

四、Cart算法(分类与回归树)

1.回归二叉树

从根节点开始,对每个节点遍历每个特征的每个切分点,选取一组使两个子节点中每个中的每个样本的y值-该节点中所有y值的均值的平方和的总和达到最小,直到满足停止条件。

2.分类二叉树

从根节点开始,对每个节点中的数据依照划分后数据集基尼系数最小(两节点基尼系数用数据比例加权)准则遍历各特征,以等于某值与否建立两个子节点,直到满足停止条件。停止条件为基尼系数小于预定阈值或节点中样本个数小于预定阈值。

3.Cart算法剪枝策略

C(T)为对预测数据的预测误差,任一节点的子树被剪枝后对损失函数的减少值为[C(T)+alfa*|T|]-[C(t)+alfa],当该值>0时应剪枝,而此时alfa>g(t)=[C(t)-C(T)]/[|T|-1]。所以若alfa缓慢变大,则在alfa等于某值时,下一时刻alfa将大于该值,所以g(t)=alfa的节点现在被进行剪枝。

由此,cart剪枝策略如下:令alfa=无穷大,自下而上遍历每个节点,计算g(t),令alfa等于当前出现过的最小g(t),将所有g(t)=alfa的节点下的子树剪枝,并保存当前的树为Tk。重复此过程直至到达根节点。将新的独立数据集放到各Tk上测试,找到最优的T。

 

五、连续值和缺失值处理

1.连续值处理

C4.5算法中将连续值特征所有出现的值排序后选取每两个值的均值为切分点进行二分。连续值特征在使用过以后还可以重复使用,只是同一个节点不能用了。

2.缺失值处理

(1)如何计算指标:每次计算信息增益或比时将原熵乘以未缺失比例(原熵的计算也只考虑未缺失数据),将划分后的熵(只考虑为缺失数据)每个节点中乘以未缺失比例。其实就是不考虑缺失数据只用未缺失数据来计算和划分。

(2)缺失特征的样本如何划分:被同时划分到每一个子节点中。

 

六、优缺点

决策树:优点 :不需要任何领域知识或参数假设,适合高维数据,简单易于理解,短时间内处理大量数据,得到可行且效果较好的结果。
缺点:易过拟合,忽略属性之间的相关性(不能用两个特征结合的条件作为切分点),不能拟合一个局部极大值比训练样本数量还多的函数。

猜你喜欢

转载自blog.csdn.net/humothetrader/article/details/81630468