决策是是一种基本的分类与回归方法。决策树称属性结构,在分类问题中,表示基于特征对实例进行分类的过程。它可以分为是if-then规则的集合,也可以是定义在特征空间与类空间上的条件概率分布,其主要优点是模型具有可读性,分类速度快。学习时,利用损失函数最小化原则建立决策树模型。决策树模型学习通常包含3个步骤:特征选择、决策树的生成和决策树的修剪。决策树三种经典的学习算法为ID3、C4.5、CART。
决策树学习本质上是从训练数据中归纳出一组分类规则。能够对训练数据集进行正确分类的决策树有很多个,也可能没有,我们要从中选择一个矛盾较小的决策树,同时又要有很好的泛化能力。
决策树学习用损失函数表示这一目标,通常为正则化的极大似然函数。决策树的学习策略是以损失函数为目标函数的最小化。当损失函数确定以后,学习问题就变成了以损失函数意义下钻则最优决策树的问题,因为从所有的可能的决策树中选取最优的决策树是NP完全问题,所以通常采用启发式的方法,得到的往往是次优的。
决策树的学习算法通常是一个递归地选择最优特征,并根据该特征对训练数据进行分割,使得对各个子数据集有一个最好分类的过程,这一过程对应着对特征空间的划分,也对应着决策树的构建,即决策规则的建立。
特征选择的关键是其准则。常用的准则为:
数据集未划分前的信息熵为:
样本集合D对特征A的信息增益比为:
样本集合D的基尼系数:
通常使用信息增益最大、信息增益比最大或基尼系数最小的准则来选择特征。决策树的生成往往通过计算信息增益或其他指标,从根节点开始,递归产生决策树,这相当于用信息增益或其他准则不断地选择局部最优特征。
CART算法与ID3和C4.5算法不同的是,CART算法既可以用于分类也可以用于回归。CART算法在划分数据时采取的是一分为二的方式,而不是一分为多。比如,当特征A有多个取值 a1,a2,a3,...,an , 然后取 A是否等于ai 为划分依据,将数据集一份为二。对于连续值,则采用选择一个切分点。
对于回归问题,CART采用最小平方差为最优特征和切分点的选择依据。
决策树的剪枝,往往从已生成的树上剪掉一些叶节点或叶节点以上的子树,将其与父节点或根节点作为新的叶节点,从而简化生成的决策树。
剪枝过程的损失函数(代价复杂度函数):
以 t 为单节点树的损失函数是