统计学习方法第五章决策树

第五章 决策树
5.1 决策树模型与学习
5.1.1 决策树模型
5.1.2 决策树与if-then 规则
5.1.3 决策树与条件概率分布
5.1.4 决策树的学习
5.2 特征选择
5.2.1 特征选择问题
5.2.2 信息增益
5.3.2 信息增益比
5.3 决策树的生成
5.3.1 ID3 算法
5.3.2 C4.5的生成算法
5.4 决策树的剪枝
5.5 CART 算法
5.5.1 CART的生成
1.回归树的生成
2.分类树的生成
5.5.2 CART 剪枝
5.1 决策树模型与学习
5.1.1 决策树模型
定义 5.1(决策树):
分类决策树模型是一种描述对实例进行分类的树形结构,决策树由节点有向边组成;节点有两种类型:

结点类型    内部结点    叶结点
表示    一个特征或属性    一个类
用决策树分类,从根结点开始,对实例的某一特征进行分类;以此将实例划分至子节点,递归直至叶节点,则将实例分配到类;

5.1.2 决策树与if-then 规则
决策树的路径或与其对应的if-then 规则集合的一条重要性质:互斥(每一个实例仅对应一条路径·)并且完备(对应满足每一条路径);

5.1.3 决策树与条件概率分布
决策树的条件概率分布由每条路径对应的类的条件概率分布组成;

5.1.4 决策树的学习
决策树学习的本质:
从训练数据集中归纳出一组分类规则;

选择条件概率模型的需要:有较好的泛化,拟合,预测能力;

决策树的损失函数通常为正则化的极大似然函数;

如何选择最优的决策树?

决策树学习的算法通常是递归的选择最优特征对训练数据划分,分配到子节点,
如果能基本真确分类,构建叶节点,
否则构建内部节点,重复上述过程,直至所有子集被基本正确分类或没有合适特征可分;

预剪枝:提前对特征进行筛选(避免特征过多->分类过多->模型过于复杂->过拟合)

5.2 特征选择
5.2.1 特征选择问题
在当前条件下选择最优特征对训练数据分割;
特征选择的准则:信息增益或信息增益比;

5.2.2 信息增益
熵 :表示随机变量不确定性的量度;
熵的单位:比特(bit) or 纳特(nat);
熵的计算式:


当等概率分布时,熵取最大值;

条件熵:


当熵和条件熵是通过数据估计(特别是极大似然估计)得到时,分别称其为,经验熵、条件熵;
定义 5.2(信息增益(://laugh
//表示由于特征A而使得对数据集D的分类的不确定性的减小程度

特征A对训练数据集的信息增益g(D,A),定义为集合D的经验熵H(D)与(特征A给定条件下的)经验条件熵H(D|A)之差,即

算法:

选择信息增益最大的特征作为最优特征;

5.3.2 信息增益比
定义 5.3 (信息增益比)
特征A对训练数据集D的信息增益比gR(D,A)定义为信息增益g(D,A)与训练数据集D关于特征A的值的熵的HA(D)之比;


前文是把集合类别作为随机变量,现在是把某一特征作为随机变量(所有的关于特征A的取值的个数为D),按照此特征的特征取值对特征进行划分(某一特征的某一特征取值的个数为Di),计算HA(D);


5.3 决策树的生成
5.3.1 ID3 算法
算法 5.2 (ID3 算法)
输入:训练数据集D,特征集A,阈值ε;
输出:决策树T


5.3.2 C4.5的生成算法
由于ID3 算法偏向选择取值个数多的特征,C4.5的算法对其进行改正(使用时还得依据实际情况,选择合适算法)
算法 5.2 (C4.5的生成算法)
把ID3 算法中的信息增益改为信息增益比;

5.4 决策树的剪枝
决策树的剪枝(pruning)往往通过极小化决策树整体的损失函数(loss function)或代价函数(cost function)来实现;
设树T的叶结点个数为|T|;
t是树T的叶结点;
该叶结点有Nt个样本点;
其中k类的样本点有Ntk个,k=1,2,…,K;
Ht(T)为叶结点t上的经验熵;
a≥0为参数;
则决策树学习的损失函数可以定义为

其中Ca(T)表示模型训练数据的预测误差,即拟合能力;
|T|代表模型复杂度;
参数α>=0,控制两者的影响:

α    大    小    0    ∞
模型复杂度    小    大    不考虑模型复杂度    最小
利用损失函数最小化原则进行剪枝就是用正则化(结构风险最小化)的极大似然估计进行模型的选择;
算法5.4(树的剪枝算法)
输入:生成算法产生的整个树T,参数α;
输出:修剪后的子树Tα;
1.计算每个结点的经验熵;
2.递归的自叶结点向根结点回溯;
3.比较剪枝前后字树的损失函数,若剪枝后损失函数值更小,则剪枝;
4.返回2.直至回溯至根结点,得到损失函数最小得子树Tα;

5.5 CART 算法
CART 组成:
(1)决策树的生成:基于训练数据集生成决策树,生成的决策树要尽量的大;
(2)决策树的剪枝:用验证数据集对以生成的树进行剪枝并选择最优子树;
剪枝标准:损失函数最小化;

5.5.1 CART的生成
决策树的生成就是递归地构建二叉树的过程;对回归树用平方误差最小化准则,

决策树类别    回归树    分类树
特征选择的准则    平方误差最小化准则    及基尼指数最小化准则
1.回归树的生成
一棵回归树对应将输入空间(特征空间)划分为M个单元,每个单元对应一个输出值cm;
回归模型表示如下:

如何选取最优cm值:
满足的条件是平方误差最小化,当cm为单元内xi对应的yi的平均值时,平方误差最小;

如何对特征空间进行划分:
function_divide()
{
for(j=0;j<J;j++)
{
for(s=0;s<S;s++)
{
暂时划分为两个子区域R1,R2:

计算最小平方误差:

/*
c的最优值叫 ^c(hat c)是所有实例xi对应的yi的平均值;

*/

如果min是全局最小值则j为最优切分变量,s为最优切分点;将特征空间划分为两个子区域;递归调用function_divide划分子区域,直至满足停止条件;
}
}
}

最终将输入空间划分为M个区域,R1,R2…RM,生成决策树:


2.分类树的生成
算法 5.6(CART生成算法)
从根结点开始对每个结点进行一下操作,构建二叉决策树;
(1)选择一个特征A=a;满足为是,不满足为否;将训练数据集分成两类;计算基尼指数;
找出基尼指数最小时对应的A 和 a为最优特征和最优切分点;切分数据集至两个子结点;
(2)对子结点递归调用(1),直至满足停止条件;
(3)生成决策树;
停止条件:
1.结点中的样本数小于阈值;
2.样本集的基尼指数小于阈值;
3.没有更多特征;

5.5.2 CART 剪枝


α权衡训练数据的拟合程度与模型的复杂度;
递归的计算出最小离散数值α,将其对应的以t为根节点子树Tt修剪为单个结点;
得到将与数值ak有关的树枝(以t为根结点的子树Tt)剪掉的最优决策树Ti;
α不断增大,递归选择模型复杂度不断减小的最优决策树;
最终得到最优决策树集合(T0,T1…Tn);
用独立的验证测试集,计算平方误差或基尼指数得到最优子树Tα;

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值