一、决策树的生成算法
基本的决策树生成算法主要有ID3和C4.5, 它们生成树的过程大致相似,ID3是采用的信息增益作为特征选择的度量,而C4.5采用信息增益比。构建过程如下:
- 从根节点开始,计算所有可能的特征的信息增益(信息增益比),选择计算结果最大的特征。
- 根据算出的特征建立子节点,执行第一步,直到所有特征的信息增益(信息增益比)很小或者没有特征可以选择为止。
以上算法只有树的生成,容易产生过拟合。
二、决策树的剪枝
决策树对于训练数据有很好的分类,但是对于未知测试集的分类并没有那么准确,这就产生过拟合的现象。其实,原理都是一样,决策树的构建是直到没有特征可选或者信息增益很小,这就导致构建的决策树模型过于复杂,而复杂的模型是通过在训练数据集上建立的,所以对于测试集往往造成分类的不准确,这就是过拟合。解决过拟合的方法是控制模型的复杂度,对于决策树来说就是简化模型,称为剪枝。很形象的就是减掉树中的一些节点。
决策树的剪枝一般通过极小化损失函数或者代价函数来实现。
设树T的叶节点的个数为|T|,t是树T的叶节点,该叶节点上有Nt个样本点,其中k类样本点有Ntk个,k=1,2,…,K,Ht(T)为叶节点t上的经验熵,α≥0为参数,则决策树的损失函数可以定义为:
Cα(T)=∑t=1|T|NtHt(T)+α|T|(1)
其中,经验熵为:
Ht(T)=?∑kNtkNtlogNtkNt(2)
将(1)式的第一项记为:
C(T)=∑t=1|T|NtHt(T)=?∑t=1|T|∑k=1KNtklogNtkNt
则:
Cα(T)=C(T)+α|T|(3)
C(T)表示模型对训练数据的预测误差,即拟合度。|T|表示模型的复杂度,参数α≥0控制两者之间的影响。剪枝就是当α确定时,选择损失函数最小的模型。子树越大,数据拟合得越好,但是模型的复杂度越高;相反,字数越小,数据拟合较差,模型的复杂度较低。损失函数正好表示对两者的平衡。
从上述分析可以看出,决策树的生成算法的模型复杂度很高,很好的地拟合了训练数据。需要重点提一下的是,(3)式定义的损失函数极小化等价于正则化的极大似然估计。