决策树(续)
决策树主要算法
- ID3 算法
- 核心指标:信息增益,指某个属性带来的熵增,信息增益越大,使用该属性划分的 “纯度提升” 越大,故以此选择划分属性。
- 特点:对可取值数目较多的属性有所偏好,例如在极端情况下,最优划分可能是 “编号” 这类属性。
- 示例数据:包含天气、温度、湿度等属性及 “是否出去玩” 的标签(7 条样本)。
- C4.5 算法
- 核心指标:信息增益率,计算公式为信息增益 ÷ 自身熵,用于优化 ID3 对多值属性的偏好问题。
- 示例数据:与 ID3 算法使用相同的 7 条样本数据(天气、温度等属性及 “是否出去玩” 标签)。
- CART 算法
- 核心指标:基尼指数 Gini (D),反映从数据集 D 中随机抽取两个样本,其类别标记不一致的概率。
- 纯度关系:样本属于某类别的概率 p 越大,Gini (D) 越小,数据集 D 的纯度越高
- ID3 算法
连续值的处理方法
- 采用贪婪算法,步骤如下:
- 排序:对连续值进行排序(如示例中 Taxable Income 排序为 60、70、75、85、90、95、100、120、125、220)。
- 确定分界点:若进行二分,可能有多个分界点(如 10 个值有 9 个分界点)。
- 离散化:将连续值分割为不同区间(如分割成 TaxIn≤80 和 TaxIn>80,或 TaxIn≤97.5 和 TaxIn>97.5)。
- 采用贪婪算法,步骤如下:
决策树剪枝策略
- 剪枝原因:决策树过拟合风险大,理论上可完全分开数据,需通过剪枝优化。
- 预剪枝
- 定义:边建立决策树边进行剪枝的操作,更实用。
- 方法:限制树的深度、叶子节点个数、叶子节点包含的样本数、信息增益量等。
- 后剪枝
- 定义:建立完决策树后进行剪枝操作。
- 衡量标准:最终损失 = 自身的 GINI 系数值 +α× 叶子节点数量。
- α 越大,模型越不易过拟合,但可能影响结果准确性;
- α 越小,更注重结果好坏,过拟合风险可能较高。
决策树代码实现
- 核心函数:
DecisionTreeClassifier()
- 关键参数表格
参数 说明 criterion 可选 gini(基尼系数)或 entropy(信息熵) splitter 可选 best(在所有特征中找最好切分点)或 random(在部分特征中找) max_features 可选 None(使用所有特征)、log2、sqrt、N(指定数量) max_depth int 或 None(默认 None),设置树的最大深度,推荐 5-20 之间,深度越大越易过拟合
- 核心函数: