《统计学习方法》第五章决策树学习笔记

来源:互联网 发布:原始股 购买 知乎 编辑:程序博客网 时间:2024/06/06 07:03

决策树这章相关的内容主要分为三部分:特征选择,建树,剪枝。
决策树的种类有ID3,C4.5以及CART 三种。

一 特征选择

1. 熵

熵(entropy)的定义:是表示随机变量X不确定性的度量。
计算公式:
设X是一个取有限个值的离散随机变量,其概率分布为:

P(X=xi)=pi,i=1,2,,n

则随机变量X的熵定义为:
H(p)=i=1npilogpi

性质:熵只依赖X的分布,与X的取值无关;熵的范围0≤H(X)≤logn,n为X取值数目;概率分布越均匀,熵取值越大,随机变量不确定性越大。上面公式中的对数以2为底或以e为底,这时熵的单位分别称为比特(bit)或纳特(nat)。
熵越大,随机变量不确定性就越大。熵的取值范围:0H(p)logn

2. 条件熵

条件熵H(Y|X)表示在已知随机变量X的条件下随机变量Y的不确定性。用于特征选择时,该值越小即不确定性越小,其对应的特征越好。
H(Y|X=xi)为X给定条件下X=xi时,Y的条件概率分布的熵。
H(Y|X)实质为H(Y|X=xi)的数学期望。
条件熵计算公式:

H(Y|X)=i=1npiH(Y|X=xi)

3. 信息增益

意义:表示得知特征X的信息而使得类Y的信息的不确定性减少的程度。
定义:g(D,A)=H(D)H(D|A)
g(D,A) 特征A对训练数据集D的信息增益。
H(D) 集合D的经验熵,数据集D的类别是个随机变量,其熵反映其不确定性。
H(D|A) 特征A给定的条件下,D的经验条件熵。
其他:决策树学习中的信息增益等价于训练数据集中类与特征之间的互信息。

4. 信息增益比

信息增益的局限性是偏向于选择取值较多的特征,信息增益可以校正这个问题。
特征A对训练数据集D的信息增益比gR(D,A)定义为其信息增益g(D,A)与训练数据集D关于特征A的值的熵HA(D)之比,即:

gR(D,A)=g(D,A)HA(D)

其中,HA(D)=ni=1|Di||D|log|Di||D|,n是特征A取值的个数。

二 决策树的生成

1. ID3算法

ID3算法使用信息增益作为特征选择的度量。
结束条件:D中所有实例都属于同一类;信息增益值小于特定的阈值;没有其他特征可以选择了。
构建树的过程中对于选中的某一个特征,其有多少种取值,就分出多少条边。
下层的节点在进行特征选择的时候不会再用到上层用过的特征。

2. C4.5算法

C4.5 对ID3的改进,除了特征选择度量以外,另外两点是可以处理连续值型属性以及处理缺失值。

a. 处理连续值型属性


  1. 根据数据集D的属性A上的具体数值按照升序排序,得到属性序列值:{A1,A2,,AN}
  2. 任意两个取值之间的中点作为可能的分割点,将数据集分成两部分,计算每个可能的分割点的信息增益。优化算法是只计算数据标签发生改变的对应两个属性值的中点。
  3. 对上一步计算得到的信息增益做修正,减去log2(N1)|D|(N是连续特征的取值个数,D是训练数据集中的样本数目),此修正的原因是:当离散属性和连续属性并存是,C4.5倾向于选择连续特征做最佳分裂点。
  4. 选择上一步修正后信息增益最大的分裂点作为该特征的最佳分裂点。
  5. 计算最佳分裂点的信息增益率作为该特征的信息增益率。

注意:与离散属性不同,若当前节点划分属性为连续属性,该属性还可作为其后代节点的划分属性
例子:

收入 40 48 60 72 80 90 类别 否 否 是 是 是 否

分裂点只能在s1=48+602=54s2=80+902=85之间产生。
g(D,A)=H(D)H(D|A)H(D)不变,H(D|A)越小越好,H(D|A)意义是在已知A的条件下,随机变量y的不确定性,只有在发生变化的分裂点上,其不确定性会降低。
以上样例计算结果为:

分裂点 44 54 66 76 85 信息增益 0.19 0.45 0.081 0 0.19

b. 处理缺失值

这部分参考周志华《机器学习》P86页,书中还有一个例子。
处理缺失值需要解决两个问题:(1)如何在属性值缺失的情况下进行划分属性选择?(2)给定划分属性,若样本在该属性上的值缺失,如何对样本进行划分。
其实还有一个问题,预测的时候,当前属性值缺失,这个处理思路和上面的第二个问题类似,样本会根据A×作为其新的权重进入到不同分支中,最终到达叶子节点后,根据样本的权重选择最大的结果作为最终结果。
这里写图片描述
这里写图片描述
上面的公式4.12和原来的公式很类似,只是三个参数ρ,r˜v,p˜k和原公式有差异,原公式中的三个参数是把样本权重看作1来处理的,这里是将属性值有缺失的样本分到不同的分支中,并更新该样本权重。

三 决策树的剪枝算法

这部分内容不是很明白,需要找个例子看下,此处留着后面再补充。

四 CART算法

分类与回归树(classification and regression tree ,CART)可以用于分类与回归。
ID3 和C4.5 树都是多叉结构,CART树是二叉树,内部节点特征的取值为“是”和“否”,左分支是取值为“是”的分支,右分支是取值为“否”的分支。

1. 回归树的生成

一个回归树对应着输入空间(特征空间)的一个划分以及在划分的单元上的输出值。假设已将输入空间划分为M个单元R1,R2,,RM,并在每个单元Rm上有一个固定的输出值,于是回归树模型可表示为:

f(x)=m=1McmI(xRm)

当输入空间的划分确定时,可以用平方误差xiRm(yif(xi))2来表示回归树对于训练数据的预测误差。
回归树生成算法
上面算法第一步中公式里面的c1c2是用求得的切分点j和s划分的两个数据集并求其平均值。

2. 分类树的生成

基尼指数:分类问题中,假设有K个类,样本点属于第k类的概率为pk,则概率分布的基尼指数定义为:

Gini(p)=k=1Kpk(1pk)=1k=1Kp2k

对于给定的样本集合D,其基尼指数为:
Gini(D)=1k=1K(|Ck||D|)2

概率分布的基尼指数与熵意义类似,值越大,其不确定性越大。
如果样本集合D根据特征A是否取某一可能值a被分割成D1D2两部分,则在特征A的条件下,集合D的基尼指数定义为:
Gini(D,A)=|D1||D|Gini(D1)+|D2||D|Gini(D2)

Gini(D)是计算样本集的基尼指数,表示集合D的不确定性;
Gini(D,A)是表示经A=a分割后集合D的不确定性,选择时要选择最小的,和H(D|A)意义类似,都是取最小的。H(D|A)是对特征做计算,选择一个特征,Gini(D,A)是对特征及其一个取值做计算,选择一个特征及其分割点。
注意:ID3和C4.5建树时是选取特征,切分点自动根据特征取值确定;CART分类树建树时是选取特征及其切分点。
建树的过程和ID3、C4.5类似,三个结束条件:1.无更多特征(建树时下层的节点仍然会有可能用到上层特征,但不可能是同一切分点);2.节点中的样本数小于预定的阈值;3.样本集的基尼指数大于指定阈值。

3. CART剪枝

后续再整理这部分。

参考:
* 李航 《统计学习方法》
* 周志华 《机器学习》

0 0
原创粉丝点击