ML-Review-决策树
原理:特征选择-生成树-剪枝
根节点包含所有样本集,
叶结点对应决策结果(不同叶结点可能对应同一决策结果)
内部节点对应决策过程。
决策树的生成就是不断的选择最优的特征对训练集进行划分,是一个递归的过程。递归返回的条件有三种:
(1)当前节点包含的样本属于同一类别,无需划分
(2)当前属性集为空,或所有样本在属性集上取值相同,无法划分
(3)当前节点包含样本集合为空,无法划分
决策算法:CART、ID3、C4.5
熵表示信息量大小,熵越小,数据纯度越高。
ID3 信息增益=划分前-划分后。 增益越大说明使用a属性划分后,纯度的提升越大,用a属性划分后得到的结果中的纯度也越高。
ID3只能做二分类,只能处理离散的属性,而且偏向选择取值较多的特征
C4.5 信息增益比 =信息增益x惩罚参数。惩罚参数在特征多时小,少时大。
C4.5算法并不是直接选择增益率最大的候选划分属性,而是使用了一个启发式:先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的。
CART Gini指数 做为特征选择的准则,必须是二叉树,全称分类与回归树
回归树中,使用平方误差最小化准则来选择特征并进行划分。每一个叶子节点给出的预测值,是划分到该叶子节点的所有样本目标值的均值,这样只是在给定划分的情况下最小化了平方误差。要确定最优化分,还需要遍历所有属性,以及其所有的取值来分别尝试划分并计算在此种划分情况下的最小平方误差,选取最小的作为此次划分的依据。由于回归树生成使用平方误差最小化准则,所以又叫做最小二乘回归树。
分类树中,使用基尼指数。使用基尼指数小的作为特征选择准则
Gini指数 vs 熵 (参看公式笔记)
既然这两个都可以表示数据的不确定性,不纯度。那么这两个有什么区别那?
- Gini指数的计算不需要对数运算,更加高效
- Gini指数更偏向于连续属性,熵更偏向于离散属性
ID3、C4.5只适用小规模数据,都是单变量决策树,特征较多时用C4.5,小数据量可直接在内存中计算,
剪枝——防止过拟合,提高泛化能力:预剪枝和后剪枝
判断过拟合:低训练误差高测试误差——过拟合
高训练误差高测试误差——欠拟合
预剪枝:生成前评估是否泛化提升,不能就跳过。速度快性能好,但会欠拟合错过最优解
后:生成完自下而上考察,将节点的子树替换成叶子,泛化提升则替换。速度慢但欠拟合风险小。
留出法,即预留一部分数据作为验证集来进行性能评估。
决策树优缺(不需要特征缩放),spark和sklern中过拟合的处理...
浙公网安备 33010602011771号