李航 统计学习方法 第五章 决策树 课后 习题 答案
来源:互联网 发布:淘宝卖的猛犸象牙真伪 编辑:程序博客网 时间:2024/06/06 06:51
决策树是一种基本的分类和回归方法。决策树呈树形结构,在分类问题中,表示基于特征对实例进行分类的过程。它可以认为是if-then规则的集合,也可以认为是定义在特征空间和类空间上的条件概率分布。学习时,利用训练数据,根据损失函数最小化的原则建立决策树模型。预测时,对新的数据,利用决策树模型进行分类。决策树学习通常包括三个步骤:特征选择、决策树的生成和决策树的剪枝。(ID3、C4.5、CART)
1 特征选择
特征选择在于选取对训练数据具有分类能力的特征。通常特征选择的准则是信息增益或信息增益比。
1.1 熵(entropy)
熵是表示随机变量不确定性的度量。
则随机变量
熵越大,随机变量的不确定性就越大。
1.2 条件熵
设有随机变量
条件熵
这里,
1.3 信息增益
信息增益:特征
1.4 信息增益比
以信息增益作为划分训练数据集的特征,存在偏向于选择取值较多的特征的问题。(取值较多的特征,可以这样理解,这个特征取值特别多,每条实例一个值,如果选择这个特征,那么每个分支都只有一条实例,也就是每个分支都属于同一个类,这个分支的熵就是0,这个特征的条件熵也就是0。这对其他的特征是不公平的,所以将信息增益除于这个特征的熵)
信息增益比:特征
其中,
2 决策树的生成
2.1 ID3 算法
ID3算法的核心是在决策树各个结点上应用信息增益准则选择特征,递归地构建决策树。
2.2 C4.5 算法
C4.5用信息增益比来选择特征
3 决策树的剪枝
决策树的剪枝往往通过极小化决策树整体的损失函数来实现。设树
其中经验熵为
用动态规划实现剪枝算法。
c4.5和id3生成算法源码:
https://github.com/zhouna/ml_python/tree/master/decisionTree
4 CART 算法
classification and regression tree, CART 分类与回归树,假设决策树是二叉树。
决策树的生成就是递归地构建二叉决策树的过程。对回归树用平方误差最小化准则,对分类树用基尼指数最小化准则,进行特征选择,生成二叉树。
5 习题解答
5.1 根据表5.1所给的训练数据集,利用信息增益比(C4.5算法)生成决策树。
输入:
输出:
其中
首先在数据集
首先计算数据集
然后计算各个特征对数据集
然后计算数据集
好了,可以计算各个特征的信息增益比(
选择信息增益比最大的特征
下面分别对数据集
数据集
分别计算针对数据集
首先计算经验熵
然后计算各个特征的经验条件熵
然后计算在数据集
下面计算各个特征的信息增益比:
选择信息增益比最大的特征
分别对数据集
数据集
同理数据集
建完了,树如下:
5.2 试用平方误差准则生成一个二叉回归树
输入变量是一维的,所以只要确定这个变量的一个切分点,就可以将输入空间划分为两个区域。
计算所有切分点的平方误差,取误差最小的切分点。如下图所示:
https://www.processon.com/view/link/59814675e4b02e2de77789ec
计算用python:
#!/usr/bin/env python2# -*- coding: utf-8 -*-"""Created on Fri Jun 16 01:58:43 2017@author: zz"""import numpy as npdef cutPoint(arr, start, size): err = [0] * (size-1) for i in range(start+1, start+size): arr1 = arr[start:i] arr2 = arr[i:start+size] print i-1, ': ', (arr1.std()**2)*arr1.size, ', ', (arr2.std()**2)*arr2.size, ' mean: ', arr1.mean(), ', ', arr2.mean() err[i-1-start] = (arr1.std()**2)*arr1.size + (arr2.std()**2)*arr2.size print err print min(err) return err.index(min(err))+startarr = np.array([4.5, 4.75, 4.91, 5.34, 5.8, 7.05, 7.9, 8.23, 8.7, 9])start = 5size = 5index = cutPoint(arr, start, size)print index, arr[index], arr[start:(index+1)].mean(), arr[(index+1):start+size].mean()
5.3 证明CART剪枝算法中,当
证明:
假设当
可以先看
5.4 证明CART剪枝算法中求出的子树序列
证明:
(没有证出来,未完待续。。。)
要证明
首先明确一点,损失函数
假设
首先证明,
然后证明,对内部节点
首先证明,
当前的树是
要证明
或者证明
要证明
要证明
- 李航 统计学习方法 第五章 决策树 课后 习题 答案
- 李航 统计学习方法 第一章 课后 习题 答案
- 李航—统计学习方法第二章课后答案
- 李航—统计学习方法第四章课后答案
- 李航—统计学习方法第一章课后答案
- 《统计学习方法》第五章决策树学习笔记
- 统计学习方法——第五章决策树
- 李航《统计学习方法》第4章习题答案参考
- 统计学习方法第十章习题答案
- C++Primer 中文版 第五版 第五章课后习题答案
- 机器学习-周志华-课后习题答案-决策树
- 《统计学习方法》第7章 课后题答案
- 《统计学习方法》第4章 课后题答案
- 《统计学习方法》第1章 课后题答案
- 谢希仁计算机网络第五版课后习题答案(1~6章)
- C++Primer 中文版 第五版 第二章课后习题答案
- C++Primer 中文版 第五版 第三章课后习题答案
- C++Primer 中文版 第五版 第四章课后习题答案
- CMake入门编程(1)
- TensorFlow初印象
- 对象序列化类库MsgPack介绍
- 基础DP
- IMX6之openwrt自动挂载U盘
- 李航 统计学习方法 第五章 决策树 课后 习题 答案
- MFC取随机数
- Ubuntu 16.04.2安装zabbix-server3.2
- H5 10
- 离散K-L变换
- libmodbus 手册翻译
- JAVA SE之基本数据类型
- Android Studio GitHub上传失败[已解决]
- 双循环链表的创建以及插入删除等操作