【吃瓜教程】(4) | 决策树:机器学习中的智慧导航,解码数据的奇迹之树!

文章目录

  • 一、基本流程
  • 二、划分选择
    • 1、信息增益
    • 2、增益率
    • 3、基尼指数



一、基本流程


       决策树(decision tree) 是一类常见的机器学习方法。

       决策树基于树结构进行分类和决策

  • 从逻辑角度,一堆if else语句的组合
  • 从几何角度,根据某种准则划分特征空间
  • 最终目的是为了把样本分的越来越纯

       用机器学习算法根据最有可能的特征进行划分,如果分类不纯可以继续按照其他特征来划分,当然仍然会有很多问题,例如分类效果不好或者过拟合等,所以算法设计时需要考虑这些。

       决策树学习的目的是为了产生一棵泛化能力强,即处理未见示例能力强的决策树,其基本流程遵循简单且直观的 “分而治之” (divide-and-conquer) 策略,如图所示。

【吃瓜教程】(4) | 决策树:机器学习中的智慧导航,解码数据的奇迹之树!_第1张图片


二、划分选择


       一般而言,随着划分过程不断进行,我们希望决策树的分支结点所包含的样本尽可能属于同一类别,即结点的"纯度" (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) 对噪声数据有很好的健壮性。
       因而,决策树是目前应用最为广泛的归纳推理算法之一,在数据挖掘中受到研究者的广泛关注。

       

       

1、信息增益


       ID3算法是决策树的一种,它是基于奥卡姆剃刀原理的,即用尽量用较少的东西做更多的事。ID3算法,即Iterative Dichotomiser 3,迭代二叉树3代,是Ross Quinlan发明的一种决策树算法,这个算法的基础就是上面提到的奥卡姆剃刀原理,越是小型的决策树越优于大的决策树,尽管如此,也不总是生成最小的树型结构,而是一个启发式算法。

       

       

       

       

       

       


2、增益率


       使用增益率不完全代替信息增益,是一种启发式的方法:先选信息增益高于平均水平的属性,然后选择增益率最高的。

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) 也越大。但是增益率可能对取值数目较少的属性有偏好。

       

       

       

       

       

       

3、基尼指数

       区别与前两种决策树,它引入了基尼值,而不是纯度本身!

       基尼值:从样本集合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)=1k=1ypk2

       属性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=1VDDvGini(Dv)

       该决策树选择基尼指数最小的属性作为最优划分属性

       实际构造算法

  • 对每个属性 a a a 的每个可能取值 v v v ,将数据集 D D D 分为 a = v a=v a=v a ! = v a!=v a!=v 两部分算基尼指数 G i n i _ i n d e x ( D , a ) = ∣ D a = v ∣ ∣ D ∣ G i n i ( D a = v ) + ∣ D a ! = v ∣ ∣ D ∣ G i n i ( D a ! = v ) Gini\_index(D,a)=\frac{|D^{a=v}|}{|D|}Gini(D^{a=v})+\frac{|D^{a!=v}|}{|D|}Gini(D^{a!=v}) Gini_index(D,a)=DDa=vGini(Da=v)+DDa!=vGini(Da!=v)
  • 按照基尼指数最小的属性及其对应取值作为最优划分属性和最优划分点
  • 重复以上两步,直至满足停止条件

       

       

       

       

你可能感兴趣的:(#,吃瓜教程,机器学习,决策树)