机器学习算法之决策树和随机森林

  决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种图解法。由于这种决策分支画成图形很像一棵树的枝干,故称决策树。在机器学习中,决策树是一个预测模型,他代表的是对象属性与对象值之间的一种映射关系。Entropy = 系统的凌乱程度,使用算法ID3, C4.5和C5.0生成树算法使用熵。

  决策树学习采用的是自顶向下的递归方法, 其基本思想是以信息熵为度量构造一棵熵值下降最快的树,到叶子节点处的熵值为零, 此时每个叶节点中的实例都属于同一类

建立决策树的关键,即在当前状态下选择哪个属性作为分类依据。根据不同的目标函数,建立决策树主要有以下三种算法。

ID3

C4.5 

CART

I决策树学习的关键其实就是选择最优划分属性,希望划分后,分支结点的“纯度”越来越高。那么“纯度”的度量方法不同,也就导致了学习算法的不同,这里我们讲解最常见的俩种算法,ID3算法与C4.5算法和CART。

ID3算法

在我们的ID3算法中,我们采取信息增益这个量来作为纯度的度量。

 

我们选取使得信息增益最大的特征进行分裂!那么信息增益又是什么概念呢?

 

信息熵是代表随机变量的复杂度(不确定度),条件熵代表在某一个条件下,随机变量的复杂度(不确定度)。

 

而我们这里说的的信息增益恰好是:信息熵-条件熵。

 

我们看如下定义:

 


当前样本集合D 中第 k 类样本所占的比例为 pk(k其实是下标,微信不好打),则 D  的信息熵定义为

离散属性a 有 V 个可能的取值 {a1,a2,…,aV};样本集合中,属性 a 上取值为 av 的样本集合,记为 Dv。

用属性a 对样本集 D 进行划分所获得的“信息增益”

 

 

 

C4.5算法

这次我们每次进行选取特征属性的时候,不再使用ID3算法的信息增益,而是使用了信息增益率这个概念。

 

首先我们来看信息增益率的公式:

由上图我们可以看出,信息增益率=信息增益/IV(a),说明信息增益率是信息增益除了一个属性a的固有值得来的。

 

我们一开始分析到,信息增益准则其实是对可取值数目较多的属性有所偏好!(比如上面提到的编号,如果选取编号属性,每一个子节点只有一个实例,可取值数目是最多,而且子节点纯度最高《只有一个类别》,导致信息增益最大,所以我们会倾向于选他,但是已经分析了这种树是不具备泛化能力的)。

 

但是刚刚我们分析到了,信息增益并不是一个很好的特征选择度量。于是我们引出了信息增益率。

 

我们来看IV(a)的公式:

属性a的固有值:

IV(触感) = 0.874 ( V = 2 )

IV(色泽) = 1.580 ( V = 3 )

IV(编号) = 4.088 ( V = 17 )

 

由上面的计算例子,可以看出IV(a)其实能够反映出,当选取该属性,分成的V类别数越大,IV(a)就越大,如果仅仅只用信息增益来选择属性的话,那么我们偏向于选择分成子节点类别大的那个特征。

 

但是在前面分析了,并不是很好,所以我们需要除以一个属性的固定值,这个值要求随着分成的类别数越大而越小。于是让它做了分母。

 

这样可以避免信息增益的缺点。

因为一开始我仅仅用信息增益作为我的选择目标,但是会出现“编号”这些使得类别数目多的属性选择,但是又不具有泛化能力,所以我给他除以一个值(这个值)随着你分的类别越多,我就越大,一定程度上缓解了信息增益的缺点

 

那么信息增益率就是完美无瑕的吗?

 

当然不是,有了这个分母之后,我们可以看到增益率准则其实对可取类别数目较少的特征有所偏好!

 

毕竟分母越小,整体越大。

 

所以C4.5算法不直接选择增益率最大的候选划分属性,候选划分属性中找出信息增益高于平均水平的属性(这样保证了大部分好的的特征),再从中选择增益率最高的(又保证了不会出现编号特征这种极端的情况

posted @ 2018-07-14 16:41  左手十字  阅读(628)  评论(0编辑  收藏  举报