《机器学习》周志华--第4章读书笔记+习题答案

《机器学习》周志华--第4章读书笔记+习题答案_第1张图片

4.1基本流程

decision tree决策树的目的是为了产生一棵泛化能力强的树——用测试集检测泛化能力
《机器学习》周志华--第4章读书笔记+习题答案_第2张图片

如图4.1所示,从树的根结点,到叶子结点(也就是判别结果),其中一般会经过若干个中间结点,每个中间结点对应一个属性测试,例如图中的色泽属性,根蒂属性,敲声属性。其中根结点是包含样本全集的,每经过一个中间结点,则会根据中间结点属性测试的结果划分到子结点中。

其基本流程遵循**“分而治之”**divide and conquer策略
三种情形导致递归返回:
(1)当前结点包含的样本全属于同一类别,无需划分;(Y一样)
(2)当前属性集为空,或是所有样本在所有属性上取值相同,无法划分;(X一样)
(3)当前结点包含的样本集合为空,不能划分(没有i了)
《机器学习》周志华--第4章读书笔记+习题答案_第3张图片

决策树的生成是一个递归过程。形象的来讲:决策树在生成过程中,从根结点开始,会一层一层往下延拓,生成更多的中间结点。
易知样本的属性类别(色泽,纹理,敲声)等有限,所以这颗决策树的层数(高度)以及每一层的中间结点数当然是有限的,而这个就依靠**“递归条件**”来限制这颗决策树的生成了。

在决策树的生成过程中,最重要的步骤之一就是步骤8,划分选择问题,这决定了这颗决策树的判别路径。

4.2划分选择

划分准则:让结点的“纯度”越来越高

如何判别纯度提升效果最优呢?:
1.信息增益 2.增益率结合信息增益 3.基尼指数

4.2.1信息增益(ID3决策树学习算法)

《机器学习》周志华--第4章读书笔记+习题答案_第4张图片

  • 信息熵:一般来说,信息熵是用来量化信息的不确定性。
    假设当前样本集合D中第k类样本所占的比例为,则样本集合D的信息熵定义为:
    在这里插入图片描述
    备注:|y|代表类别的数量
    Ent(D)越小,则D的纯度越高,集合的不确定性越小,信息熵越低。
  • 信息增益information gain越大越好,意味着“纯度”提升更明显
    信息增益=信息熵-条件熵。
    设该属性为a,且a有V分可能取值在这里插入图片描述
    即经过划分可以产生V个分支结点,其中第v个分支结点包含了D中所有在属性a上取值为,记该子集为 D v D^v Dv
    对每个属性a对应的V个取值,计算出信息增益,进而比较出信息增益最大的那个属性a*在这里插入图片描述
    信息增益越大,意味着在当前条件下,信息的不确定性减小的越多,不确定性越低,在本场景中就是样本的纯度越高。

因此我们就可以通过信息增益来进行决策树的划分属性选择,即在图4.2算法流程第8行选择属性 a ∗ = a r g m a x G a i n a ϵ A ( D , a ) a_*=argmaxGain^{ }_{a\epsilon A}\left(D,a\right) a=argmaxGainaϵA(D,a)

但是实际上,信息增益在一定程度上存在问题。例如集合D一共有100个样本,我们将样本从1-100进行编号。假如我们把编号也考虑进入属性划分选择,那么毫无疑问,编号带来的信息增益是特别高的。因为可想而知:一个样本一个编号,这个时候每个分支结点都只有一个样本,这已经是纯度最高的情况了。

换句话说,信息增益对属性多的有所偏好,此时增益会偏大。
所以引入了增益率。

4.2.2增益率(C4.5决策树算法的核心)

  • 增益率 gain ratio

缺点:与信息增益方法相反,偏好可取值数目较少的属性

你可能感兴趣的:(机器学习--西瓜书,决策树,剪枝,算法,python,机器学习)