机器学习6:决策树算法概述
本文参考了周志华老师的《机器学习》一书,以及相关博客【机器学习实战(三)——决策树】。
(1)决策树算法简介:
决策树是一种基本的分类与回归方法,在分类问题中表示基于特征对实例进行分类的过程;
决策树学习的目标是根据给定的训练集构建一个决策树模型,使它能够对实例进行正确的分类;
决策树的构建通常有三个步骤:特征选择、决策树生成和决策树修剪。
(2)决策树的算法基础:
①信息熵:
信息熵是度量样本集合纯度最常用的指标,假定当前样本集合D中第k类样本所占的比例为,则D的信息熵定义为:
的值越小,则表示D的纯度越高。
②信息增益:
划分数据集的大原则是:将无序数据变得更加有序,在划分前后信息发生的变化称为信息增益,获得信息增益最高的特征就是最好的选择。
假设离散属性a有V个可能的取值,若使用a对样本D进行划分,则会产生V个分支结点,其中第V个分支结点包含了D中所有在属性a上取值为的样本,记为;考虑到不同的分支结点所包含的样本数不同,给分支结点赋予权重||/|D|,则属性a划分样本集D的信息增益为:
一般而言,信息增益越大,则使用属性a进行划分所获得的“纯度提升“越大。
③ID3算法简介:
1)ID3算法的核心:
在决策树各个结点上对应信息增益准则选择特征,递归地构建决策树;
2)ID3算法具体步骤:
从根结点开始,对结点计算所有可能的特征的信息增益,选择信息增益最大的特征作为结点特征;
由该特征的不同值建立子节点,再对子节点递归地调用以上方法,构建决策树,直到所有特征的信息增益均很小或没有特征可选择为止;
递归处理得到一个决策树模型。
(3)决策树的剪枝:
①目的:
针对决策树结构过于复杂而产生的过拟合现象。
②剪枝操作简介:
从已经生成的树裁掉一些子树或叶结点,并将其根结点或父结点作为新的叶子结点,从而简化分类树的模型。
③剪枝操作的实现原理:
通过最小化决策树整体的损失函数来实现剪枝操作,决策树损失函数定义为:
其中,T:表示子树的叶子结点;
H(t):表示第t个叶子的熵,其中;
Nt:表示该叶子所含训练样例的个数;
:表示惩罚系数。
在损失函数中:
C(T)表示模型对训练数据的预测误差,即模型与训练数据的拟合程度;
参数的含义为:当>=0时控制两者间的影响,较大的促使较简单的树,较小的促使较复杂的树,=0意味着只考虑模型与训练数据的拟合程度,不考虑其复杂程度。
④剪枝的具体实现:
决策树的剪枝过程就是从叶子结点开始递归,记其结点将所有子结点回缩后的子树为Tb(分类值取类别比例最大的特征值),未回缩的子树记为Ta;
如果Ca(Ta)Ca(Tb),说明回缩后损失函数减小,则回缩这棵子树,递归至无法回缩为止;
其中公式定义的损失函数的极小化等价于正则化的极大似然估计。