当前位置: 首页 > news >正文

第二章:16.3 构建决策树的过程

决策树的构建过程

决策树是一种基于树结构的监督学习算法,用于分类和回归任务。其核心思想是通过递归地选择最优特征来分割数据集,从而构建出一棵树形结构,用于对新数据进行预测。以下是详细的构建过程:


1. 初始化:从根节点开始
  • 输入:所有训练样本(数据集)。

  • 根节点:决策树的起点,包含所有训练样本。

  • 目标:通过选择最优特征对数据进行分割,逐步构建决策树。


2. 选择最优特征
  • 信息增益(或其他指标):计算每个特征对数据集的分割效果,通常使用信息增益(Information Gain)、信息增益比(Gain Ratio)或基尼不纯度(Gini Impurity)等指标。

  • 选择最优特征:选择信息增益最高的特征作为当前节点的分割特征

  • 示例:假设当前节点有三个特征可供选择(如“耳朵形状”、“脸型”、“胡须”),计算每个特征的信息增益后,选择信息增益最高的特征(如“脸型”)进行分割。


3. 分割数据集
  • 根据特征值划分数据根据所选特征的不同取值,将数据集划分为多个子集。例如:

    • 如果选择的特征是“耳朵形状”,则将数据分为“尖耳朵”和“圆耳朵”两组。

    • 每个子集对应决策树的一个分支。

  • 创建子节点:为每个子集创建一个子节点,并将对应的样本分配到这些子节点。


4. 递归构建子树
  • 递归过程:对每个子节点重复上述步骤(选择最优特征、分割数据集),逐步构建子树。

  • 检查停止条件:在每个子节点上,检查是否满足停止分裂的条件。常见的停止条件包括:

    1. 纯度条件:当前节点的所有样本都属于同一类别(纯度为100%)。

    2. 最大深度限制:当前树的深度已经达到预设的最大深度。

    3. 信息增益阈值:当前分裂带来的信息增益小于某个预设阈值。

    4. 最小样本数:当前节点的样本数量小于某个预设值。

  • 创建叶子节点如果满足停止条件,则将当前节点标记为叶子节点,并赋予其对应的类别标签(如“猫”或“狗”)。

  • 继续递归:如果不满足停止条件,则继续选择最优特征并分割数据,直到所有分支都满足停止条件。


5. 递归终止
  • 当所有分支都满足停止条件后,决策树构建完成。

  • 最终结构:决策树的每个叶子节点代表一个预测结果,而内部节点则表示基于某个特征的决策规则。


6. 预测过程
  • 对于新的样本,从根节点开始,根据其特征值沿着决策树的分支向下移动,直到到达叶子节点。

  • 预测结果叶子节点的类别标签即为新样本的预测结果


关键点总结

  1. 递归思想:决策树的构建是递归的,每次分割数据后,都会在子集上重复相同的步骤,直到满足停止条件。

  2. 信息增益:选择信息增益最高的特征进行分割,以最大化数据的纯度。

  3. 停止条件:通过设置最大深度、信息增益阈值、最小样本数等参数,避免过度拟合。

  4. 参数优化:可以通过交叉验证等方法调整参数(如最大深度、信息增益阈值等),以达到最佳的模型性能。


示例说明

假设我们有一个简单的数据集,包含以下特征和类别:

  • 特征:耳朵形状(尖/圆)、脸型(圆/方)、胡须(有/无)

  • 类别:猫或狗

  1. 根节点:从所有样本开始,计算每个特征的信息增益。

  2. 选择最优特征:假设“脸型”的信息增益最高,选择“脸型”作为分割特征。

  3. 分割数据:根据“脸型”将数据分为“圆脸”和“方脸”两组,分别对应决策树的左右分支。

  4. 递归构建子树

    • 对于“圆脸”分支,检查是否满足停止条件。如果不满足,则继续选择最优特征(如“胡须”)并分割数据。

    • 对于“方脸”分支,重复上述过程。

  5. 创建叶子节点:当某个分支满足停止条件(如所有样本都属于同一类别)时,创建叶子节点并赋予类别标签。

  6. 最终决策树:所有分支都满足停止条件后,决策树构建完成。

相关文章:

  • 统信服务器操作系统V20 1070A 安装docker新版本26.1.4
  • Unity项目实战-订阅者发布者模式
  • Day4:强化学习之Qlearning走迷宫
  • ELF,链接,加载
  • oracle取金额的绝对值
  • c# -新属性-模式匹配、弃元、析构元组和其他类型
  • restful 状态码
  • 命令注入绕过
  • Spring Boot 自动装配机制原理详解
  • 什么是逻辑分析仪?
  • 维护ceph集群
  • 麒麟armv10-sp3安装oracle19c
  • SurfaceComposerClient
  • DeepSeek01-本地部署大模型
  • Vite 在生产环境下的打包策略
  • Uniapp 从入门到精通:组件与 API 的深度剖析
  • 【GESP C++三级考试考点详细解读】
  • 年前集训总结python
  • 使用vue2 脚手架 结合 Element UI 写一个电商商城前端静态网站模板-前端项目练习
  • 日做力扣题1--3. 无重复字符的最长子串
  • 中国巴西关于乌克兰危机的联合声明
  • A股三大股指涨跌互现:银行股领涨,两市成交12915亿元
  • 甘肃:今年6月前,由县级党委、政府制定农村彩礼倡导性标准
  • 中国科学院院士徐春明不再担任山东石油化工学院校长
  • 人民日报:浙江着力提升民营企业核心竞争力
  • 母亲节书单|关于生育自由的未来