决策树(Decision Tree)是一种基本的分类与回归方法。
一、决策树模型的理解
1、if-then规则的集合
决策树可以看作是if-then规则的集合,可以从根结点到叶节点的每一条路径构建一个规则。决策树的路径与其对应的if-then规则集合具有一个重要的性质:互斥并且完备:每一个实例都被一条路径或者规则覆盖,并且只被一条路径或者规则覆盖。
2、条件概率分布
决策树可以表示为给定特征条件下类的条件概率分布。决策树将特征空间划分为互不相交的单元(cell)。决策树的每一条路径对应一个单元。所表示的条件概率分布由各个单元给定条件下类的条件概率分布组成。(这点与贝叶斯不同,贝叶斯是对联合概率分布p(X,Y)建模,表示的条件概率是X=x给定的条件下类的条件概率分布。贝叶斯是每个特征都相等的条件,而决策树是给定的单元,代表着每个特征都有固定的取值范围,只限定一个范围)。
二、决策树学习
从if-then规则角度理解,决策树学习就是从训练数据中归纳出一组分类规则。得到一个较为符合训练数据的决策树,同时具有一定的泛化能力。从条件概率来看,就是如何对条件概率(特征空间)进行划分。
我们知道统计学习的三要素。模型(定义模型),策略(优化目标),算法(优化方法)。决策树模型可以看做是特征空间划分后,不同单元的类的条件概率。损失函数通常是正则化的极大似然函数。因为从所有决策树中选取最优决策树是NP完全问题。所以现实中决策树算法通常采用启发式方法,来贪婪算法近似求解,“如果特征数量过多,可以在决策时学习前,进行特征选择。”
决策树学习算法包括,特征选择,决策树生成,决策树剪枝。决策树生成对应于模型的局部选择(只考虑局部最优,选择当前最好的特征),决策树剪枝对应于模型的全局选择(全局最优)。
三、特征选择
特征选择选取对训练数据具有分类能力的特征,这样可以提高决策树学习的效率。常用的方式有信息增益,信息增益比,基尼指数。
1、信息增益(Information Gain)
信息增益=熵-条件熵
熵的大小反映了随机变量不确定性的大小。条件熵是某条件给定的情况下,随机变量不确定性的大小。那么,信息增益就代表了给定了某条件后,随机变量不确定性降低了多少
假设离散型随机变量的概率分布为:
则该随机变量的熵为:
条件熵为X给定的条件下,Y的条件概率分布的熵对X的期望:
信息增益information gain为:
2、信息增益比
采用信息增益进行特征选择存在一个明显的缺点,就是存在偏向选择取值较多的特征。为此,信息增益比对特征取值数增加了惩罚因子。
其中,是数据集D关于特征值A的熵。
3、基尼指数Gini
基尼指数定义为:
四 决策树的生成
1、ID3算法
核心是在每个内部节点使用信息增益选择当前最优特征。“每个特征选择后,要从当前的特征集合中剔除,要就是不会重复使用某一特征”
2、C4.5算法
对ID3算法进行了改进,使用信息增益比替换信息增益。
3、CART(classification and regression tree)
1)回归树的生成
回归树对应着特征空间的划分以及划分单元上的输出值。每个单元取该单元的平均值作为输出。
2)分类树的生成
使用基尼指数选择当前最优特征。
五 决策树剪枝
决策树生成算法递归的生成决策树,直到不能下去为止。这样的决策时往往会过拟合。为此会对决策树进行剪枝。决策树的剪枝一般通过极小化决策树整体的损失函数或代价函数实现(考虑全局最优)。通常使用预剪枝或后剪枝的方式。