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

【机器学习300问】34、决策树对于数值型特征如果确定阈值?

        还是用之前的猫狗二分类任务举例(这个例子出现在【机器学习300问】第33问中),我们新增一个数值型特征(体重),下表是数据集的详情。如果想了解更多决策树的知识可以看看我之前的两篇文章:

【机器学习300问】28、什么是决策树?icon-default.png?t=N7T8http://t.csdnimg.cn/Tybfj

【机器学习300问】33、决策树是如何进行特征选择的?icon-default.png?t=N7T8http://t.csdnimg.cn/iaxSA 这里我就不赘述啦,直接进入正题。

 如果我选择用体重特征作为根节点的决策策略,那么我们会面临这样一个问题。

一、什么阈值才能更好的区分数据集?

        所用到的工具还是信息增益,我们可以将一些列可能比较不错的能区分数据集的阈值列举出来,例如,在连续数值区间上,可以测试每个唯一值或者每隔一定步长选取值作为潜在的阈值,画出下面这样的一幅图。

  • 首先,遍历数据集中所有猫和狗的体重值
  • 对于每一个可能的体重阈值,将样本集划分为两个子集:一组是体重低于该阈值的动物,另一组是体重等于或高于该阈值的动物
  • 计算划分前的数据集的信息熵以及每个子集的信息熵,并根据子集内样本数目的比例加权求和得到条件熵(就像下面这幅图中所示)
  • 通过比较不同阈值下所对应的信息增益,选择信息增益最大的那个阈值作为分割点

在这个例子中我们最终选定了,体重<=9,作为最合适的阈值,因为此时的信息增益最大。

二、如何停止决策树的分叉?

        这里再讲一个知识点,虽然这个知识点和题目无关(偷笑),但因为讲到了信息增益所以补充一个通过信息增益停止构建决策树防止过拟合的方法。决策树停止分叉(即停止生长或停止构建子节点)的常见条件包括但不限于以下几种:

  1. 最大深度限制:预先设定一个整数值,作为决策树的最大允许深度。当当前节点所在的分支达到这个深度时,无论当前节点的信息增益或其他指标如何,都不再进行分割。

  2. 最小节点样本数:规定每个内部节点(非叶子节点)所包含的最少样本数量,若某节点划分后某个子节点中的样本数量小于这个阈值,则不再继续分割。

  3. 信息增益阈值设置一个信息增益的最小值,如果某个特征划分数据集后的信息增益低于此阈值,则停止该节点的进一步划分

  4. 叶子节点数目限制:可以设定决策树允许的最大叶子节点数量,当到达这个数量时停止构建新节点。

  5. 无更多可分特征:所有特征都已经被用于划分,并且当前节点下的样本已经无法通过剩余特征得到更优的划分结果。

http://www.lryc.cn/news/319156.html

相关文章:

  • 计算机二级(Python)真题讲解每日一题:《绘制雪花》
  • Rust 的 Arc<Mutex<T>> 的用法示例源代码
  • 【NR 定位】3GPP NR Positioning 5G定位标准解读(十六)-UL-AoA 定位
  • 如何理解闭包
  • python知识点总结(一)
  • 【Poi-tl Documentation】区块对标签显示隐藏改造
  • 第十四届蓝桥杯 三国游戏
  • 数据结构——通讯录项目
  • 学点Java打小工_Day4_数组_冒泡排序
  • 内存分配方式?
  • 2024/3/17周报
  • 函数连续性和Lipschitz连续性
  • Qt 鼠标滚轮示例
  • 【Unity】进度条和血条的三种做法
  • 多人聊天室 (epoll - Linux网络编程)
  • vite配置
  • 服务器生产环境问题解决思路
  • 鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:Column)
  • LLM之RAG实战(三十)| 探索RAG语义分块策略
  • 软件测试-------Web(性能测试 / 界面测试 / 兼容性测试 / 安全性测试)
  • 工欲善其事,必先利其器,Markdown和Mermaid的梦幻联动(2)
  • STM32基础--使用寄存器点亮流水灯
  • 代码随想录训练营Day25:● 216.组合总和III ● 17.电话号码的字母组合
  • SwiftUI的 特性 - ViewModify
  • 中间件 | RPC - [Dubbo]
  • 【中等】保研/考研408机试-二叉树相关
  • 自动驾驶---Motion Planning之构建SLT Driving Corridor
  • 本地文件包含漏洞利用
  • 【docker】docker的常用命令
  • jmeter实战