监督学习之六——决策树(Decision Trees)


一、决策树概述

在这里插入图片描述
决策树通过一系列的判断来确定最终的结果,可用于解决分类和回归问题,其目的就是为了产生一棵泛化能力强,即处理未见事例能力强的决策树。

二、属性划分算法

假设集合D种有n种不同的属性,则采用以下算法就可以生成一个决策树了。

2.1 ID3

信息熵 E n t ( D ) = i = 1 n p i l o g 2 p i \displaystyle Ent(D)=-\sum^n_{i=1}-p_ilog_2p_i ,表示当前样本的纯度,越小越纯。
假设离散属性a有V种可能的取值
信息增益 G a i n ( D , a ) = E n t ( D ) v = 1 V D v D E n t ( D v ) \displaystyle Gain(D,a)=Ent(D)-\sum^V_{v=1}\frac{|D^v|}{|D|}Ent(D^v)
ID3算法:选择最大信息增益的属性。

2.2 C4.5

增益率 G a i n _ r a t i o ( D , a ) = G a i n ( D , a ) I V ( a ) \displaystyle Gain\_ratio(D,a)=\frac{Gain(D,a)}{IV(a)}
其中 I V ( a ) = v = 1 V D v D l o g 2 D v D \displaystyle IV(a)=-\sum^V_{v=1}\frac{|D^v|}{|D|}log_2\frac{|D^v|}{|D|} ,称为属性a的固有值。需要注意的是《统计学习方法》中增益率分母为 E n t ( D ) Ent(D) ,其结果本质上是相同的。
C4.5算法:先选择较大信息增益的属性,再从中选择增益率最大的属性。

对取值数目较少的属性有偏好

2.3 CART

基尼值 G i n i ( D ) = i = 1 n i i p i p i = 1 i = 1 n p k 2 \displaystyle Gini(D)=\sum^n_{i=1}\sum_{i' \neq i}p_ip_{i'}=1-\sum^n_{i=1}p_k^2
基尼指数 G i n i _ i n d e x ( D , a ) = v = 1 V D v D G i n i ( D v ) \displaystyle Gini\_index(D,a)=\sum^V_{v=1}\frac{|D^v|}{|D|}Gini(D^v)
CART算法:选择基尼指数最小的

2.4 C5.0

三、决策树的剪枝

剪枝是为了防止过拟合,生成一个泛化能力强的决策树。基本策略有预剪枝后剪枝

四、连续值的处理

对于取连续值的属性,我们把现有的连续值的中点作为离散的候选划分点,再用划分算法计算出候选最佳划分点,用该划分点将属性分为两类。

五、缺失值的处理

如果样本中有缺失值,那么会产生以下两个问题:

(1)如何在属性值缺失的情况下进行划分属性的选择?

(2)给定划分属性,如果样本在该属性值上是缺失的,如何对这个样本进行划分?

针对(1)的处理非常简单,假设17个样本在“色泽”属性上只有14个是有值的,另外3个是缺失的,那么就以这14个样本的属性值计算信息增益,然后把这个值乘以权重14/17。

针对(2)的处理也很简单,对于一个缺失该属性的样本,将该样本以划分样本比例为权重同时进入所有分支

六、多变量决策树

下图来源于《机器学习》周志华,p91
《西瓜书》

七、时间复杂度


完,感谢阅读!

发布了60 篇原创文章 · 获赞 32 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_42297855/article/details/99203156