决策树的定义
是一种常用的分类与回归方法。决策树的模型为树形结构,在针对分类问题时,实际上就是针对输入数据的各个特征对实例进行分类的过程,即通过树形结构的模型,在每一层级上对特征值进行判断,进而到达决策树叶子节点,即完成分类过程。
决策树的结构
分类树–对离散变量做决策树
回归树–对连续变量做决策树
(分类)决策树的结点:内部结点(表示一个特征或属性),叶结点(表示一个类)
长方形代表判断模块,椭圆形成代表终止模块
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-M1rQKM8G-1587085901850)(C:\Users\lululu\AppData\Roaming\Typora\typora-user-images\1584325959233.png)]
决策树做预测过程
收集数据:可以使用任何方法。比如想构建一个相亲系统,我们可以从媒婆那里,或者通过参访相亲对象获取数据。根据他们考虑的因素和最终的选择结果,就可以得到一些供我们利用的数据了。
准备数据:收集完的数据,我们要进行整理,将这些所有收集的信息按照一定规则整理出来,并排版,方便我们进行后续处理。
分析数据:可以使用任何方法,决策树构造完成之后,我们可以检查决策树图形是否符合预期。
训练算法:这个过程也就是构造决策树,同样也可以说是决策树学习,就是构造一个决策树的数据结构。
测试算法:使用经验树计算错误率。当错误率达到了可接收范围,这个决策树就可以投放使用了。
使用算法:此步骤可以使用适用于任何监督学习算法,而使用决策树可以更好地理解数据的内在含义。
决策树的构建
特征选择
决策树的生成
决策树的修剪
决策树的构建
特征选择
选取对训练数据具有分类能力的特征。特征选择的标准是信息增益或信息增益比
什么是信息增益呢?在划分数据集之前之后信息发生的变化成为信息增益,知道如何计算信息增益,我们就可以计算每个特征值划分数据集获得的信息增益,获得信息增益最高的特征就是最好的选择。
熵
集合信息的度量方式成为香农熵或者简称为熵
表示一个随机变量的复杂性或者不确定性。
1、熵定义为信息的期望值:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bKII7IYf-1587085901868)(C:\Users\lululu\AppData\Roaming\Typora\typora-user-images\1584326646556.png)]
p(xi)是选择该分类的概率
2、我们需要计算所有类别所有可能值包含的信息期望值(数学期望):[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZdeAJ7e7-1587085901871)(C:\Users\lululu\AppData\Roaming\Typora\typora-user-images\1584326715503.png)]
n是分类的数目。熵越大,随机变量的不确定性就越大。
条件熵
条件熵:表示在直到某一条件后,某一随机变量的复杂性或不确定性。
条件熵H(Y|X)表示在已知随机变量X的条件下随机变量Y的不确定性
X给定条件下Y的条件概率分布的熵对X的数学期望:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IvJwl5Mq-1587085901874)(C:\Users\lululu\AppData\Roaming\Typora\typora-user-images\1584328685029.png)]
经验条件熵的公式:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2H1fu2by-1587085901879)(C:\Users\lululu\AppData\Roaming\Typora\typora-user-images\1584328289677.png)]
特征A有n个不同的取值{a1,a2,···,an},根据特征A的取值将D划分为n个子集D1,D2,···,Dn,
|Di|为Di的样本个数;Di中属于Ck的样本的集合为Dik;
Dik = Di ∩ Ck;|Dik|为Dik的样本个数
信息增益
信息增益:表示在知道某一条件后,某一随机变量的不确定性的减少量。
年龄的信息增益:
g(D,A1)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8fFyCfbV-1587085901882)(C:\Users\lululu\AppData\Roaming\Typora\typora-user-images\1584328410917.png)]
工作g(D,A2):
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-drU8L0r9-1587085901887)(C:\Users\lululu\AppData\Roaming\Typora\typora-user-images\1584328482379.png)]
房子g(D,A3):
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VIvLxUN8-1587085901889)(C:\Users\lululu\AppData\Roaming\Typora\typora-user-images\1584328494163.png)]
信贷情况g(D,A4):
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bVVkvMS2-1587085901892)(C:\Users\lululu\AppData\Roaming\Typora\typora-user-images\1584328513912.png)]
特征A3(有自己的房子)的信息增益值最大,所以选择A3作为最优特征
决策树的生成:
树的绘制(递归思路):
每一次都分三个步骤:
(1)绘制自身
(2)判断子节点非叶子节点,递归
(3)判断子节点为叶子节点,绘制
利用整棵树的叶子节点数作为份数将整个x轴的长度进行平均切分,
利用树的深度作为份数将y轴长度作平均切分,
利用plotTree.xOff作为最近绘制的一个叶子节点的x坐标,当再一次绘制叶子节点坐标的时候才会plotTree.xOff才会发生改变;
用plotTree.yOff作为当前绘制的深度,plotTree.yOff是在每递归一层就会减一份(上边所说的按份平均切分),其他时候是利用这两个坐标点去计算非叶子节点,这两个参数其实就可以确定一个点坐标,这个坐标确定的时候就是绘制节点的时候
决策树的优缺点
优点
(1)速度快: 计算量相对较小, 且容易转化成分类规则. 只要沿着树根向下一直走到叶, 沿途的分裂条件就能够唯一确定一条分类的谓词.
(2)准确性高: 挖掘出来的分类规则准确性高, 便于理解, 决策树可以清晰的显示哪些字段比较重要, 即可以生成可以理解的规则.
(3)可以处理连续和种类字段
(4)不需要任何领域知识和参数假设
(5)适合高维数据
缺点
(1)对于各类别样本数量不一致的数据, 信息增益偏向于那些更多数值的特征
(2)容易过拟合
(3)忽略属性之间的相关性
字段比较重要, 即可以生成可以理解的规则.
(3)可以处理连续和种类字段
(4)不需要任何领域知识和参数假设
(5)适合高维数据
缺点
(1)对于各类别样本数量不一致的数据, 信息增益偏向于那些更多数值的特征
(2)容易过拟合
(3)忽略属性之间的相关性