决策树8.19

决策树算法概述

  • 介绍了三种决策树算法:ID3、C4.5、CART。
    • ID3算法:通过信息增益评估特征选择,信息增益越大,特征划分效果越好。
    • C4.5算法:引入信息增益率(信息增益除以自身熵),缓解ID3对稀疏矩阵的偏好问题。
    • CART算法:基于基尼系数评估特征,基尼系数越小,纯度越高,适用于连续值和分类问题。

连续值处理

  • 连续值可通过设定阈值转换为分类问题(如大于/小于某值),类似逻辑回归的思想。
  • 示例:成绩阈值设为60分,将回归问题转换为分类问题(及格/不及格)。

决策树剪枝策略

  • 预剪枝:边构建树边剪枝,通过限制深度、叶子节点数、信息增益量等防止过拟合。
  • 后剪枝:先完整构建树,再通过损失函数(如基尼系数+叶子节点数×α)剪枝,α为可调参数,控制剪枝强度。

过拟合与泛化能力

  • 决策树易过拟合,需通过剪枝平衡模型复杂度。
  • 泛化能力指模型适应新数据的能力,决策树泛化能力较弱,需结合业务场景调整。

代码实现与参数

  • 使用基尼系数或信息熵作为分裂标准。
  • 特征选择策略:best(全局最优切分点)或random(随机子集最优切分点)。

讨论与答疑

  • 解释了稀疏矩阵下ID3算法的局限性及C4.5的改进。
  • 强调α(剪枝参数)需根据实际数据调整,通常取适中值以平衡过拟合与准确率。

随机森林与决策树铺垫

  • 讨论随机森林中寻找最佳切分点的重要性,强调若使用相同数据集和切分点会导致决策树完全相同,失去集成学习意义。
  • 关键参数包括:最大特征数(参考特征数量)、最大深度(预剪枝策略一致)。

泰坦尼克号数据集预测

  • 数据集内容:乘客ID、年龄、性别、存活标签(1为幸存,0为死亡)。
  • 数据预处理:
    • 删除无关列(如姓名、票号)及缺失值过多的列(如船舱号)。
    • 填充年龄缺失值(均值填充),删除港口缺失行(仅2条)。
    • 分类变量(如性别、港口)转换为数值型(如性别:0/1,港口:0/1/2)。

模型训练与评估

  • 数据切分:训练集70%、测试集30%,分离特征与标签。
  • 决策树分类器:
    • 初始准确率73.4%,十折交叉验证略高(因数据重复使用导致虚高)。
    • 网格搜索法优化超参数(最大深度、切分策略、最小样本数等),最优参数组合:
      • 最大深度=6、信息增益切分、最小混乱度下降=0、最小叶子样本数=5。
    • 最终模型准确率82%,存在过拟合(训练集91% vs 测试集82%)。
复制代码
## **关键概念与注意事项**

* **过拟合处理**:通过预剪枝(限制深度)或后剪枝调整。
* **网格搜索法**:替代多重循环,高效遍历超参数组合。
* **鲁棒性**:Python因封装函数多、调用便捷,适合快速开发。
* **离散特征处理**:稀疏特征(如姓名)需删除或转换,避免干扰模型。
复制代码
## **代码实现要点**

* 使用`pandas`处理数据,`sklearn`调用决策树分类器。
* 绘图展示深度与准确率关系,验证过拟合现象。
* 强调特征工程重要性(如性别、年龄对存活率的影响)。

总结:

文档围绕决策树算法 展开,介绍了 ID3、C4.5、CART 三种算法,ID3 用信息增益 选划分属性,却偏好可取值多的属性;C4.5 采用信息增益率 (信息增益 ÷ 自身熵)改进;CART 以基尼指数衡量数据集纯度。还涉及连续值处理(用贪婪算法离散化)、剪枝策略(预剪枝和后剪枝,预剪枝边建边剪,后剪枝基于损失函数等衡量)、代码实现参数及课堂练习。

相关推荐
tt55555555555531 分钟前
字符串与算法题详解:最长回文子串、IP 地址转换、字符串排序、蛇形矩阵与字符串加密
c++·算法·矩阵
元亓亓亓1 小时前
LeetCode热题100--101. 对称二叉树--简单
算法·leetcode·职场和发展
Monkey的自我迭代2 小时前
机器学习总复习
人工智能·机器学习
不会学习?2 小时前
算法03 归并分治
算法
NuyoahC2 小时前
笔试——Day43
c++·算法·笔试
秋难降3 小时前
别再用暴力排序了!大小顶堆让「取极值」效率飙升至 O (log n)
python·算法·排序算法
龙腾亚太3 小时前
基于深度强化学习的无人机自主感知−规划−控制策略
机器学习·无人机·强化学习·深度强化学习
学行库小秘4 小时前
基于门控循环单元的数据回归预测 GRU
人工智能·深度学习·神经网络·算法·回归·gru
_meow_4 小时前
数学建模 15 逻辑回归与随机森林
算法·数学建模·逻辑回归