Decison Tree(决策树)

1. 什么是决策树

决策树是基于树结构进行决策。决策树学习的目的是产生一棵泛化能力强,处理未见示例能力强的决策树。
基本流程遵循分而治之。

决策树的基本算法

Decison Tree(决策树)_第1张图片
决策树.png

2.划分选择

2.1 信息增益

信息熵
![](http://www.forkosh.com/mathtex.cgi? Ent(D) = -\sum_{k=1}^{|y|} p_klog_2p_k)
pk 表示D中k类占的比例
Ent(D)越小表示纯度越高
信息增益
![](http://www.forkosh.com/mathtex.cgi? Gain(D,a) =Ent(D) - \sum_{v=1}{V}\frac{|Dv|}{|D|}Ent(D^v))
ID3
信息增益准则对可取数目较多的属性有所偏好
信息增益越大意味着使用属性a来进行划分所获得纯度提升越大

2.2增益率

![](http://www.forkosh.com/mathtex.cgi?
Gain_ratio(D,a) = \frac{Gain(D,a)}{IV(a)} )

![](http://www.forkosh.com/mathtex.cgi? IV(a)=-\sum_{v=1}^Vlog_2\frac{|Dv|}{|D|})

在增益率准则对取值数目较少的属性有所偏好
C4.5使用启发式,先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的

2.3 基尼指数

![](http://www.forkosh.com/mathtex.cgi?Gini= \sum_{k=1}^{|y|}\sum_{k'\ne k}p_kp_k')
基尼指数越小纯度越高,反映了从数据集D中随机抽取两个样本其类别不一样的概率。

属性a的基尼指数
![](http://www.forkosh.com/mathtex.cgi?Gini_index(D, a) = \sum_{v=1}{V}\frac{Dv}{D}Gini(D^v))

3. 剪枝处理

对付过拟合

3.1 预剪枝

在决策树的生成过程中,对每个节点在划分前进行估计,若当前节点的划分不能带来决策树泛化能性能的提升则停止划分并将当前节点标记为叶节点。
预剪枝可能造成欠拟合

3.2 后剪枝

从训练集生成一棵完整的决策树,然后自底向上的对非叶节点进行考察,若将该节点对应的字数替换为叶节点能带来决策树泛化能力提升,则将该子树替换为叶节点。
后剪枝欠拟合风险很小,泛化性能往往优于预剪枝

4.连续和缺失值

采用二分法对连续值进行处理
让同一个样本以不同的概率进入不同的子节点

你可能感兴趣的:(Decison Tree(决策树))