机器学习算法原理系列篇13: 决策树和决策树不同算法区别 (decision tree)

 

 

决策树算法,或者统称Classification And Regression Tree (CART),是在数据挖掘中常用的机器学习算法。决策树也是一种非常直观形象和易于理解的算法,总的来说是通过数学方法不断区分数据的迭代方法。决策树是一种非参数的监督学习方法,因为每一步的决策算法都是基于所有数据。决策树算法也是许多更加复杂的基础算法的基础,理解决策树算法有助于理解其他更加复杂的算法。

 

决策树是一个树状的图谱,每一个结点处是挑选某个特征维度和提问的地方,每一条边代表了对节点问题的回答。决策树的最底部的叶子(即不再有子节点的根节点)代表了决策树的一个最终判断或者分类结果。决策树的最终结果是非线性的,而且是由许多分段函数组成的非线性分界面。

 

 

 

上图是一个根据天气等情况从而决定是否外出打网球的简单决策树。决策树的决策流程看起来合情合理,但是实际上,这个决策结果是基于很多历史数据得到的。比如,我们跟踪网球爱好者的外出打球经历,并且记录每一天的天气因素。有了天气因素(特征变量X)和是否外出记录(目标变量Y),再依据决策树算法,可以获得上诉的决策流程。从这个例子,我们可以也看出决策树具有直观和可解释性强的显著特点。

 

扫描二维码关注公众号,回复: 9923976 查看本文章

 

 

决策树实现的算法本质上是从上到小的贪婪算法(greedy algorithm),即每一步得到的是局部最优解。通常的做法是,在每一个节点处(第一个节点即为根节点),根据到达该节点处的所有训练样本,选择最好的特征变量作为该节点的判断依据。根据特征变量不同的取值获得新的子节点。然后在每个子节点重复这一过程。这个过程一直持续,直到训练样本被完美的分类(即到达该节点处的所有样本具有同样的标签)或者所有的维度已经被用完。

 

具体的决策树算法,按提出的时间早晚主要有ID3, C4.5,CART几种。每一种算法的在具体实现细节上都有所改进。在ID3 算法中,每个节点选择最好的特征依据熵增益统计方法 (Information Gain)。在明白熵增益之前,首先我们要明白熵(Entropy)的定义。如果随机变量Y取值有限,比如总共c个分类,并且概率分布如下:

 

那么Y的熵计算方法如下:

 

熵的概念在热力学上用来表示系统的混乱程度,熵的值越大表示系统越无序,反之系统越有序。在信息理论中,熵用来表示需要多少比特来表征系统所包含的信息量,熵越大代表需要的比特越多。以二分类问题为例,假设正样本的概率为p,那么下图代表了p从0到1 的变化范围中,系统的熵值大小。可见,正样本概率为0.5时候所对应的熵值越大,当概率为0或者1时候熵值越小。

 

 

 

由此可见,决策树算法要解决的问题就是把分类问题从无序转为有序,把目标变量熵值从大到小的降低过程。在任意一个节点处,ID3算法可以算出该节点的熵值H(Y),然后尝试不同的特征变量。对于某一个特征变量X,假设其取值有n个,那么该节点处的数据会被对应划分为n份。对于每一份新数据,ID3根据对应的目标变量取值算出熵 H(Y|X=xi)。每一份新数据的熵全部加起来,就是在选取某一个特征变量X后系统的新的熵值。那么在某一个特征变量X的选取下,系统的熵增益为:

 

 

 

遍历所有的特征变量,熵增益最大的变量即被ID3算法选为当前节点处的判断依据。

 

上诉ID3算法的思路简单明了,但是算法会倾向于选择取值特别多的特征变量,从而容易引起过拟合。为了解决这个问题,C4.5算法采用信息增益比的方式对分支过多的特征变量进行处罚。信息增益比的计算方法为下式:

 

其中H(X)是根据X特征变量本身的分布计算得到的X本身的熵,如果X的分支比较多,则H(X) 偏大,从而起到惩罚的作用。

 

CART(Classification and Regression Tree)算法相比之前两种算法有两点不同之处。一是所有节点处均采用二叉划分,避免特征变量多个取值造成的多叉树。二叉树不容易产生数据碎片,精度往往高于多叉树。二是使用Gini系数来测量当前特征带来的数据不纯度减少。Gini系数计算自变量Y的不纯度如下所示:

 

以二分类问题为例,如果当前节点的Y=1的概率为1,Y=0的概率为0, 则Gini系数为0,此时节点处对应的不纯度最低。在任意节点选取特征变量为判读依据时候,需要首先计算出每个分支的Gini系数,然后按照每个分支数据量加权平均。平均Gini系数最小的特征作为该节点的判读依据。以此类推,从而决定在每一个节点处采用哪一个自变量作为判断依据。

 

CART也可以用来处理目标变量为连续值的回归问题。在回归问题中的每一个节点处,用来选择自变量的指标是最小平方残差(Mean squared error)或者最小绝对残差(Mean absolute error)。在二叉树的根节点,所有数据的平均值作为所有到达该节点的预测值。因此二叉树处理的回归问题得到的答案其实是分段线性函数,类似下图所示。

 

 

 

更多有趣和专业的人工智能相关文章,微信搜索  : robot-learner , 或扫码

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

猜你喜欢

转载自blog.csdn.net/robot_learner/article/details/104851914