机器学习算法系列
第二章 分类模型-决策树知识点详细总结
第三章 分类模型-随机森林知识点详细总结
第四章 分类模型-支持向量机SVM知识点详细总结
第五章 关联分析-apriori算法知识点详细总结
目录
前言
本章节内容主要介绍决策树,包括决策树简介、生成规则、信息增益、决策树分类条件选择、决策树预剪枝和后剪枝、决策树参数说明并附上部分代码、决策树优缺点。
一、决策树简介
决策树是一种树形结构,树内部每个节点表示一个属性上的测试,每个分支代表一个测试输出,每个叶子节点代表一个分类类别。通过训练数据构建决策树,可以对未知数据进行分类。
- 根节点:最顶层的分类条件
- 中间节点:中间分类条件
- 分支:代表每一个条件的输出
- 叶节点:代表每一个类别
二、决策树的生成原则
数据不断分裂的递归过程,每一次分裂,尽可能让类别一样的数据在树的一边,当树的叶子节点的数据都是一类的时候,则停止分类。这样分类的数据,每个节点两边的数据不同,将相同的数据分类到树的一侧,能将数据分类的更纯粹。减少树的高度和训练决策树的迭代次数。
注意:训练决策树的数据集要离散化,不然有可能造成训练出来的树有些节点的分支特别多,容易造成过拟合。
一个合理的决策树可以描述为:决策树的高度相对低而且树的两边能将数据分类的更彻底。
参考链接:https://www.jianshu.com/p/b04e1d9ea6f1
三、信息增益
信息增益:代表熵的变化程度。分类前的信息熵减去分类后的信息熵。
通过对所有分类条件计算信息增益,那么信息增益最大的那个分类条件就是最优的根节点分类条件的选择。
四、分类条件选择
1.信息熵
信息熵是用来量化信息信息量的指标,信息熵越大,则信息越混乱,信息熵越小,则信息越纯粹。熵的定义如下
信息熵公式:
其中,n代表当前类别有多少类别,pi代表当前类别中某一类别的概率。
下面举一个例子看一下信息熵的使用
由上图可知,最终"是否购买电脑"类别的信息熵如下:
构建上图中最优的决策树,首先需要知道哪一个分类条件作为根节点是最优的。
如何选择决策树的根节点分类条件,就是找到某列作为分类条件时,使最终类别分类的更彻底,也就是找到在一个分类条件可以使最终的信息熵相对于没有这个分类条件时,信息熵降低的幅度最大(降低最大,就是熵越低,分类越彻底)。
而这里要使用到条件熵和信息增益。
条件熵:在某个分类条件下某个类别的信息熵叫做条件熵,类似于条件概率,在知道Y的情况下,X的不确定性。条件熵一般使用H(X|Y)表示,代表在Y条件下,X的信息熵。
信息增益:代表熵的变化程度。分类前的信息熵减去分类后的信息熵。
因此年龄条件下的信息增益 = 最终"是否购买电脑"的信息熵 - 年龄条件下的信息熵 = 0.94-0.69=0.25
通过对所有分类条件计算信息增益,那么信息增益最大的那个分类条件就是最优的根节点分类条件的选择。
综上所述,在构建决策树时,选择分类分类条件的步骤如下:
1.计算叶节点所对应列的信息熵
2.计算每个已知列的信息熵
3.求得各个条件下的信息增益,选择信息增益大的作为分类条件。选择中间节点时,也以此类推。
在构建决策树时,选择信息增益大的属性作为分类节点的方法也叫 ID3 分类算法。
2.信息增益率