决策树(decision tree) 是一类常见的机器学习方法。
决策树基于树结构进行分类和决策
- 从逻辑角度,一堆if else语句的组合
- 从几何角度,根据某种准则划分特征空间
- 最终目的是为了把样本分的越来越纯
用机器学习算法根据最有可能的特征进行划分,如果分类不纯可以继续按照其他特征来划分,当然仍然会有很多问题,例如分类效果不好或者过拟合等,所以算法设计时需要考虑这些。
决策树学习的目的是为了产生一棵泛化能力强,即处理未见示例能力强的决策树,其基本流程遵循简单且直观的 “分而治之” (divide-and-conquer) 策略,如图所示。
一般而言,随着划分过程不断进行,我们希望决策树的分支结点所包含的样本尽可能属于同一类别,即结点的"纯度" (purity) 越来越高.
决策树的 典型算法 有ID3,C4.5,CART等 。
国际权威的学术组织,数据挖掘国际会议ICDM (the IEEE International Conference on Data Mining)在2006年12月评选出了数据挖掘领域的十大经典算法中,C4.5算法排名第一。C4.5算法是机器学习算法中的一种分类决策树算法,其核心算法是ID3算法。C4.5算法产生的分类规则易于理解,准确率较高。不过在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,在实际应用中因而会导致算法的低效。
决策树算法的优点如下:
(1) 分类精度高;
(2) 生成的模式简单;
(3) 对噪声数据有很好的健壮性。
因而,决策树是目前应用最为广泛的归纳推理算法之一,在数据挖掘中受到研究者的广泛关注。
ID3算法是决策树的一种,它是基于奥卡姆剃刀原理的,即用尽量用较少的东西做更多的事。ID3算法,即Iterative Dichotomiser 3,迭代二叉树3代,是Ross Quinlan发明的一种决策树算法,这个算法的基础就是上面提到的奥卡姆剃刀原理,越是小型的决策树越优于大的决策树,尽管如此,也不总是生成最小的树型结构,而是一个启发式算法。
使用增益率不完全代替信息增益,是一种启发式的方法:先选信息增益高于平均水平的属性,然后选择增益率最高的。
G a i n _ r a t i o ( D , a ) = G a i n ( D , a ) I V ( a ) Gain\_ratio(D,a) = \frac{Gain(D,a)}{IV(a)} Gain_ratio(D,a)=IV(a)Gain(D,a)
其中 I V ( a ) IV(a) IV(a) 表示的是a属性的固有值, a a a 的取值个数 V V V 越大,通常其固有值 I V ( a ) IV(a) IV(a) 也越大。但是增益率可能对取值数目较少的属性有偏好。
区别与前两种决策树,它引入了基尼值,而不是纯度本身!
基尼值:从样本集合D中随机抽取两个样本,其标记不一致的几率。基尼值越小,碰到异类的概率越小,纯度越高。
G i n i ( D ) = 1 − ∑ k = 1 ∣ y ∣ p k 2 Gini(D)=1-\sum_{k=1}^{|y|}p_k^2 Gini(D)=1−k=1∑∣y∣pk2
属性a的基尼指数
G i n i _ i n d e x ( D , a ) = ∑ v = 1 V ∣ D v ∣ ∣ D ∣ G i n i ( D v ) Gini\_index(D,a)=\sum_{v=1}^{V}\frac{|D_v|}{|D|}Gini(D^v) Gini_index(D,a)=v=1∑V∣D∣∣Dv∣Gini(Dv)
该决策树选择基尼指数最小的属性作为最优划分属性
实际构造算法