一、决策树概述
决策树通过一系列的判断来确定最终的结果,可用于解决分类和回归问题,其目的就是为了产生一棵泛化能力强,即处理未见事例能力强的决策树。
二、属性划分算法
假设集合D种有n种不同的属性,则采用以下算法就可以生成一个决策树了。
2.1 ID3
信息熵:
Ent(D)=−i=1∑n−pilog2pi,表示当前样本的纯度,越小越纯。
假设离散属性a有V种可能的取值
信息增益:
Gain(D,a)=Ent(D)−v=1∑V∣D∣∣Dv∣Ent(Dv)
ID3算法:选择最大信息增益的属性。
2.2 C4.5
增益率:
Gain_ratio(D,a)=IV(a)Gain(D,a),
其中
IV(a)=−v=1∑V∣D∣∣Dv∣log2∣D∣∣Dv∣,称为属性a的固有值。需要注意的是《统计学习方法》中增益率分母为
Ent(D),其结果本质上是相同的。
C4.5算法:先选择较大信息增益的属性,再从中选择增益率最大的属性。
对取值数目较少的属性有偏好
2.3 CART
基尼值:
Gini(D)=i=1∑ni′=i∑pipi′=1−i=1∑npk2
基尼指数:
Gini_index(D,a)=v=1∑V∣D∣∣Dv∣Gini(Dv)
CART算法:选择基尼指数最小的
2.4 C5.0
三、决策树的剪枝
剪枝是为了防止过拟合,生成一个泛化能力强的决策树。基本策略有预剪枝和后剪枝。
四、连续值的处理
对于取连续值的属性,我们把现有的连续值的中点作为离散的候选划分点,再用划分算法计算出候选最佳划分点,用该划分点将属性分为两类。
五、缺失值的处理
如果样本中有缺失值,那么会产生以下两个问题:
(1)如何在属性值缺失的情况下进行划分属性的选择?
(2)给定划分属性,如果样本在该属性值上是缺失的,如何对这个样本进行划分?
针对(1)的处理非常简单,假设17个样本在“色泽”属性上只有14个是有值的,另外3个是缺失的,那么就以这14个样本的属性值计算信息增益,然后把这个值乘以权重14/17。
针对(2)的处理也很简单,对于一个缺失该属性的样本,将该样本以划分样本比例为权重同时进入所有分支
六、多变量决策树
下图来源于《机器学习》周志华,p91
七、时间复杂度
完,感谢阅读!