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.连续和缺失值

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容