决策树
一类解决分类问题的算法,核心是信息熵的计算和分类节点的选择。
一、决策树
1、基本算法:决策树包含一个根节点、若干内部节点和若干叶节点,叶节点给定决策结果,其余每个节点对应一个属性测试。重点在于如何合理的选择节点测试属性,使得样例集合理地分流、使得整个决策树有较好的泛化能力。
2、ID3决策树/信息熵:从根节点开始选择测试属性,若测试属性a的信息增益(上节点信息熵-属性信息熵)在当前属性集中最大,即选择其为节点测试属性。
其认为,节点含的信息熵越低越好,因为分类问题的最终目标是通过最少的决策将集合分为相同的类,而相同类的熵为0,故在每步都要保证能最大化熵减。
3、C4.5决策树/增益率:改进了信息增益会受到属性取值数量的影响(若以序号作为分类标准,其信息增益最大),而采用增益率代替信息增益:
4、CART决策树/基尼指数:另一种选取测试属性方法,即基尼指数最小化。可推广至回归问题。
二、决策树的剪枝
此节为解决决策树的过拟合问题,减少树深度,主要方法为预剪枝和后剪枝。
1、预剪枝:将数据集分为训练集和验证集。训练集在训练出节点测试属性的每一步之前,均分别比较划分属性和直接设定叶节点的验证集验证精度,采取精度高的决定是否设定测试属性。(此时直接设定叶节点值直接看类的个数,若一致随便选一个)
2、后剪枝:先用训练集训练出树,再从叶节点逐步向上搜索,也是计算划分前后的验证集精度。
三、属性值的连续与缺失处理
此节讨论属性值取连续值、数据集中存在属性数据缺失的情形。
1、属性值连续:如“西瓜的含糖量”作为判定西瓜好坏的标准。先要确定划分具体值,再决定在该划分值下的信息增益,可用下述公式确定(Ta集合即为离散点的中位点集合):
2、属性数据缺失:如一个样例中有含糖量,另一个没有,又称为不完整样本。只需使用下述推广的信息增益,即通过计算完整样本子集的信息增益再映射回原数据集即可:
四、多变量决策树
此节即对多个连续取值的属性构成的决策树生成提出不同的算法思想。
1、原先对于连续属性的选取是确定划分点,如“大于xx的是好瓜”,这对应于属性空间的水平竖直线。
2、多变量决策树即改进此算法,实现“斜划分”,对属性的线性组合进行测试,每个测试属性为线性分类器(a×xx+b×yy<z为好瓜):