您的位置:首页 > 其它

机器学习笔记(九)——决策树的生成与剪枝

2016-05-08 11:43 351 查看

一、决策树的生成算法

基本的决策树生成算法主要有ID3和C4.5, 它们生成树的过程大致相似,ID3是采用的信息增益作为特征选择的度量,而C4.5采用信息增益比。构建过程如下:

从根节点开始,计算所有可能的特征的信息增益(信息增益比),选择计算结果最大的特征。

根据算出的特征建立子节点,执行第一步,直到所有特征的信息增益(信息增益比)很小或者没有特征可以选择为止。

以上算法只有树的生成,容易产生过拟合。

二、决策树的剪枝

决策树对于训练数据有很好的分类,但是对于未知测试集的分类并没有那么准确,这就产生过拟合的现象。其实,原理都是一样,决策树的构建是直到没有特征可选或者信息增益很小,这就导致构建的决策树模型过于复杂,而复杂的模型是通过在训练数据集上建立的,所以对于测试集往往造成分类的不准确,这就是过拟合。解决过拟合的方法是控制模型的复杂度,对于决策树来说就是简化模型,称为剪枝。很形象的就是减掉树中的一些节点。

决策树的剪枝一般通过极小化损失函数或者代价函数来实现。

设树T的叶节点的个数为|T|,t是树T的叶节点,该叶节点上有Nt个样本点,其中k类样本点有Ntk个,k=1,2,…,K,Ht(T)为叶节点t上的经验熵,α≥0为参数,则决策树的损失函数可以定义为:设树T的叶节点的个数为|T|,t是树T的叶节点,该叶节点上有N_t个样本点,其中\\k类样本点有N_{tk}个,k=1,2,\dots,K,H_t(T)为叶节点t上的经验熵,\alpha \ge 0 为\\参数,则决策树的损失函数可以定义为:

Cα(T)=∑t=1|T|NtHt(T)+α|T|(1)C_{\alpha}(T)=\sum_{t=1}^{|T|}N_tH_t(T)+\alpha|T| (1)

其中,经验熵为:

Ht(T)=−∑kNtkNtlogNtkNt(2)H_t(T)=-\sum_k\frac{N_{tk}}{N_t} \log \frac{N_{tk}}{N_t}(2)

将(1)式的第一项记为:

C(T)=∑t=1|T|NtHt(T)=−∑t=1|T|∑k=1KNtklogNtkNtC(T) = \sum_{t=1}^{|T|}N_tH_t(T) = -\sum_{t=1}^{|T|}\sum_{k=1}^KN_{tk} \log \frac{N_{tk}}{N_t}

则:

Cα(T)=C(T)+α|T|(3)C_{\alpha}(T)=C(T)+\alpha|T| (3)

C(T)C(T)表示模型对训练数据的预测误差,即拟合度。|T||T|表示模型的复杂度,参数α≥0\alpha \ge 0控制两者之间的影响。剪枝就是当α\alpha确定时,选择损失函数最小的模型。子树越大,数据拟合得越好,但是模型的复杂度越高;相反,字数越小,数据拟合较差,模型的复杂度较低。损失函数正好表示对两者的平衡。

从上述分析可以看出,决策树的生成算法的模型复杂度很高,很好的地拟合了训练数据。需要重点提一下的是,(3)式定义的损失函数极小化等价于正则化的极大似然估计。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: