一.什么是决策树?
已知输入变量和输出变量均为连续变量的预测问题被称为回归问题,输出变量为有限个离散变量的预测问题被称为分类问题。决策树是一种分类与回归的方法,因其结构呈树状而得名。决策树是一种描述对实例进行分类的结构。
决策树的实施包括以下几个步骤:特征选择、决策树的生成和树的剪枝。
1)特征选择
实际项目中的特征变量数都会大于两个,此时对多个特征进行先后顺序不一样的决策时会有不一样的结果和准确率。所以就需要特征选择来决定当前应该选择那种特征来划分。也就是说,当下特征中对分类最有效的特征应该优先被选择。
(1)熵
这就是信息增益的主要思想。
(2)信息增益
信息增益可以视作某一特征对数据集混乱程度降低的贡献程度:即当某个特征确定下来以后,数据集熵的降低得越明显,说明该特征对数据集提供了更多的信息,贡献程度越大。
(3)信息增益比
信息增益比也可以衡量某特征对数据的熵的影响大小。信息增益比可以视为信息增益的标准化,相对于信息增益的准则,信息增益比可以减弱对取值较多的特征的偏好。
2)决策树生成
(1)ID3
ID3算法的核心就是以信息增益来度量特征选择,选择信息增益最大的特征进行分裂。算法采用自顶向下的贪婪搜搜遍历可能的决策空间,步骤为:
①初始化特征集合和数据集合;
②计算数据集合信息熵和所有特征的条件熵,选择信息增益最大的特征作为当前决策节点;
③更新数据集合和特征集合(删除上一步使用的特征,并按照特征值来划分不同分支的数据集合);
④重复2,3两步若子集值包含单一特征,则为分支叶子节点。
数据集的信息熵:
其中
表示集合K中属于第k类样本的样本子集。
针对某个特征A,对于数据集D的条件熵H(D|A)为:
其中
表示D中特征A取第i个值的样本子集,
表示
中属于第k类的样本子集。
信息增益 = 信息熵 - 条件熵
ID3的缺点
- ID3没有剪枝策略,容易过拟合;
- 信息增益准则对可取值数目较多的特征有所偏好;
- 只能用于处理离散分布的特征;
- 没有考虑缺失值;
(2)C4.5
C4.5相对于ID3的缺点对应有以下改进方式:
引入悲观剪枝策略进行后剪枝;
引入信息增益率作为划分标准;
将连续特征离散化,假设n个样本的连续特征A有m个取值,C4.5将其排序并取相邻两样本值的平均数共m-1个划分点,分别计算以该划分点作为二元分类点时的信息增益,并选择信息增益最大的点作为该连续特征的二元离散分了点;
对于缺失值的处理可以分为两个子问题:
问题一:在特征值缺失的情况下进行划分特征的选择?(即如何计算特征的信息增益率)
问题二:选定该划分特征,对于缺失该特征值的样本如何处理?(即到底把这个样本划分到哪个结点里)
针对问题一,C4.5的做法是:对于具有缺失值的特征,用没有缺失的样本子集所占比重来折算;
针对问题二,C4.5的做法是:将样本同时划分到所以子节点,不过要调整样本的权重值,其实也就是以不同概率划分到不同节点中。
信息增益率:
为特征A的固有值。
这里需要注意,信息增益率对可取值较少的特征有所偏好(分母越小,整体越大),因此 C4.5 并不是直接用增益率最大的特征进行划分,而是使用一个启发式方法:先从候选划分特征中找到信息增益高于平均值的特征,再从中选择增益率最高的。
(3)CART
CART决策树的全称是分类与回归树模型,不同于简单分类决策树,CART决策树是一颗二叉树,即要求对每次某个特征划分时只能分为两类,但会对该特征的不同取值进行多次划分,以确保信息得到充分使用。
CART 在 C4.5 的基础上进行了很多提升:
- C4.5 为多叉树,运算速度慢,CART 为二叉树,运算速度快;
- C4.5 只能分类,CART 既可以分类也可以回归;
- CART 使用 Gini 系数作为变量的不纯度量,减少了大量的对数运算;
- CART 采用代理测试来估计缺失值,而 C4.5 以不同概率划分到不同节点中;
- CART 采用“基于代价复杂度剪枝”方法进行剪枝,而 C4.5 采用悲观剪枝方法。
基尼指数:
熵模型拥有大量耗时的对数运算,基尼指数在简化模型的同时还保留了熵模型的优点。基尼指数代表了模型的不纯度,基尼系数越小,不纯度越低,特征越好。这和信息增益(率)正好相反。
其中k代表类别。
基尼指数反映了从数据集中随机抽取两个样本,其类别标记不一致的概率。因此基尼指数越小,则数据集纯度越高。基尼指数偏向于特征值较多的特征,类似信息增益。基尼指数可以用来度量任何不均匀分布,是介于 0~1 之间的数,0 是完全相等,1 是完全不相等