这是我参与11月更文挑战的第13天,活动详情查看:2021最后一次更文挑战
决策树的原理
经验总结 - 得出结论
经历的两个阶段 - 构造和剪枝
-
构造
生成一棵完整的决策树 -选择用什么属性作为节点的过程- 什么属性作为根节点
- 什么属性作为子节点
- 什么时候停止并得到目标状态 - 叶节点
-
剪枝 - 防止过拟合
-
过拟合和欠拟合
-
剪枝的方法 - 预剪枝和后剪枝
- 预剪枝 - 决策树构造时 - 构造过程中 对节点进行评估 - 添加不能带来准确性提升 - 不添加
- 后剪枝 - 决策树构造后 - 叶节点开始 自下而上对每个节点评估 - 删去与不删没有太大差别/ 带来明显准确性提升 - 节点删去,叶节点替代,类别用该节点子树最频繁的那个类
小结
经验总结 - 得出结论
构造 - 剪枝【预剪枝【构造时评估不能带来准确性提升】、后剪枝【构造后评估如果去掉】
特征选取方法 - 基于信息熵 - 降低信息熵【-plogp】 - ID3、C4.5、Cart
ID3 - 信息增益 - (当前信息熵 - 生成新节点后的信息熵)= (父节点信息熵 - 所有子节点信息熵 【子节点归一化信息熵)-倾向选择取值多的属性 - 噪声敏感 - 信息增益越大越好 步骤:
- 计算父节点信息熵 -Σplogp
- 计算某分类各个子节点的信息熵
- 计算各分类子节点信息熵的归一化信息熵 【各子节点信息熵乘以对应在父节点出现的概率和】
- 父节点信息熵 - 归一化子节点信息熵
C4.5 - 信息增益率 - (信息增益 / 属性熵) - 保证整体信息增益率不变 - 解决了噪声敏感
- 悲观剪枝【PEP】 提升决策树的泛化能力 【比较 剪枝前后 节点分类错误率】
- 离散化处理连续属性 【阈值 最高信息增益】
- 缺失值处理 - 不考虑缺失值的情况下计算出信息增益率 - 原本的信息增益率 为 权重 * 算出的信息增益率
- 需对数据集进行多次扫描 - 算法效率相对较低
决策树的构造过程 - 纯度越高的划分