决策树学习总结
一、决策树主要算法
- ID3 算法
- 核心依据是信息增益,信息增益越大,使用该属性划分获得的 “纯度提升” 越大,故以此选择划分属性。
- 存在局限性,信息增益准则对可取值数目较多的属性有所偏好,例如在某些情况下可能会将 “编号” 作为最优划分。
- C4.5 算法
- 采用信息增益率来选择划分属性,信息增益率为信息增益除以该属性自身的熵,一定程度上弥补了 ID3 算法的不足。
- 信息增益率:信息增益/自身熵
- CART 算法
- 以基尼指数作为划分依据,基尼指数 Gini (D) 反映了从数据集 D 中随机抽取两个样本,其类别标记不一致的概率。
- 数据集的纯度与基尼指数成反比,即 p 越大,Gini (D) 越小,数据集 D 的纯度越高。
二、特殊情况处理
对于连续值,可采用贪婪算法进行处理,具体步骤如下:
- 先对连续值进行排序。
- 若进行 “二分”,可得到多个分界点,通过选择合适的分界点将连续值进行离散化,从而应用于决策树的划分。
三、剪枝策略
- 剪枝原因:决策树过拟合风险很大,理论上可以完全分离开数据,通过剪枝可降低过拟合风险。
- 预剪枝:边建立决策树边进行剪枝,更具实用性。可通过限制深度、叶子节点个数、叶子节点样本数、信息增益量等方式实现。
- 后剪枝:建立完决策树后进行剪枝操作。衡量标准为最终损失 = 自身的 GINI 系数值 +α× 叶子节点数量,其中 α 的大小影响剪枝效果:α 越大,越不易过拟合,但结果可能欠佳;α 越小,更注重结果好坏,过拟合可能较难控制。
四、决策树代码实现相关参数
在DecisionTreeClassifier()
中,主要参数包括:
criterion
:可选择 gini(基尼系数)或者 entropy(信息熵)。splitter
:可选择 best(在所有特征中找最好的切分点)或者 random(在部分特征中找切分点)。max_features
:可设置为 None(所有)、log2、sqrt、N 等。max_depth
:为 int 或 None,默认 None,用于设置决策树的最大深度,深度越大越容易过拟合,推荐深度在 5-20 之间。
五、练习
今天的课堂练习,使用决策树对泰坦尼克号幸存者进行预测
通过本次学习,对决策树的主要算法、特殊情况处理、剪枝策略、代码实现参数及实践应用有了较为全面的认识,为后续进一步深入学习和应用决策树奠定了基础。