“从根到叶:使用决策树导航数据”

news2024/10/6 20:34:06

目录

一、说明

二、什么是决策树?

三、基本概念:

四、工作原理:

五、分类原理分析

5.1 信息熵:

5.2 信息增益:

5.3 基尼杂质:

5.4 基尼系数和熵的区别:

六、对于回归决策树:

6.1 均方误差(MSE) :

6.2 使用 MSE 获得信息:

6.3 分类拆分:

6.4 回归拆分:

6.5 停止树的几个步骤:

七、优缺点分析

7.1 优势:

7.2 缺点

八、结论


一、说明

        决策树可能不是什么新鲜东西,但是它的作用有两个:分类型、回归型。分别以熵和均方差作为分支判别的依据,本篇将对比其细节。     

二、什么是决策树?

        决策树是一种监督式机器学习模型,它采用树状结构根据输入特征做出决策或预测。它以递归方式将数据拆分为多个子集,每个子集由所选特征的值决定,从而形成一个树状结构,其中内部节点表示决策规则,叶节点表示预测结果。该模型基于规则、可解释,适用于分类和回归任务,提供决策过程的透明表示。

三、基本概念:

        想象一下,你必须做出一系列决定来解决问题,比如诊断疾病或选择餐馆。你从一个问题开始,每个答案都会把你引向另一个问题,直到你做出最终决定。这个过程可以可视化为一棵树,其中:

根:

起点(第一个问题)。

分支:

每个问题的可能答案。

节点:

根据问题的答案做出决定的点。

叶:

四、工作原理:

        从根开始:从整个数据集开始,然后选择最能将数据拆分为不同组的特征(问题)。

        分支: 每个答案(分支)都会导致另一个功能(问题),该特征(问题)进一步拆分数据。

        重复: 继续这个过程,直到你能做出明确的决定或预测(到达一片叶子)。

        例:

        假设您正在尝试根据动物是哺乳动物、鸟类还是爬行动物对动物进行分类。您的决策树可能如下所示:

        根源问题:动物有羽毛吗?
        是的:这是一只鸟(叶子)。
        否:转到下一个问题。

        下一个问题:动物会生下幼崽吗?
        是的:它是一种哺乳动物(叶子)。
        不:它是一种爬行动物(叶子)。

为什么有用:

           易于理解:树状结构使决策过程易于可视化和理解。

        处理不同类型的数据:可以处理数字和分类数据。

        非线性关系 :捕获要素与目标变量之间的复杂非线性关系。

五、分类原理分析

5.1 信息熵:

        它是对一组数据的不确定性或随机性的度量。具体来说,在决策树算法中,熵用于量化基于特征的分裂前后节点的杂质。

        “熵的范围在0到1之间”,因为熵是基于概率的。

5.2 信息增益:

        信息增益衡量根据特征拆分数据集后目标变量的熵或不确定性的减少。它指示拆分后子节点与父节点相比的顺序。

5.3 基尼杂质:

        测量随机选择的元素如果根据子集中标签的分布进行随机标记,则该元素被错误标记的频率。

        基尼杂质的范围在0.5到1之间,用于二元分类:

1–1/c ,其中类(c)=2,给出 0.5

5.4 基尼系数和熵的区别:

        两者几乎相同,我们可以用它们来查找数据中的杂质,但是当涉及到更大的数据集时,基尼指数似乎更快一点,因为它计算平方和计算平方比计算“log”更快,并且对数由熵使用。这里给出一点推导:

        将熵的对数部分按泰勒展开,取第一项就成了基尼系数了。

六、对于回归决策树:

6.1 均方误差(MSE) :

        均方误差 (MSE) 量化了 n 个实例的实际目标值 yi 与模型生成的预测值 y^i 之间的平均平方差。

6.2 使用 MSE 获得信息:

6.3 分类拆分:

        在分类任务中,目标是根据样本的特征预测样本的类标签或类别。下面是在分类决策树中拆分的示例:

        数据集:假设我们有一个花的数据集,其特征包括花瓣长度和宽度、萼片长度和宽度,以及一个指示花种的目标变量(例如,鸢尾、花色鸢尾、弗吉尼亚鸢尾)。

        示例:假设我们想根据特征“花瓣长度”拆分数据集。我们可以选择一个阈值,例如 2.5 厘米。花瓣长度小于或等于 2.5 厘米的实例转到一个子节点,花瓣长度大于 2.5 厘米的实例转到另一个子节点。

6.4 回归拆分:

        在回归任务中,目标是根据输入特征预测连续目标变量(例如,房价、温度)。

        数据:假设我们有一个房屋数据集,其中包含卧室、浴室数量、平方英尺等特征,以及指示房屋销售价格的目标变量。

        例: 假设我们想根据特征“平方英尺”拆分数据集。我们可以选择一个阈值,例如 2000 平方英尺。面积小于或等于 2000 平方英尺的房屋将进入一个子节点,面积大于 2000 平方英尺的房屋将进入另一个子节点。

6.5 停止树的几个步骤:

1 修剪:

        修剪涉及删除树中不能提供显着预测能力或改进泛化的部分。它有助于防止树变得过于复杂并捕获数据中的噪声。

        有两种主要的修剪技术:预修剪(根据某些标准提前停止树木的生长)和修剪后(在树木完全生长后修剪)。

        成本复杂度修剪: 成本复杂度修剪,也称为最小成本复杂度修剪或 alpha 修剪,是一种用于修剪决策树以防止过度拟合的技术。它涉及通过平衡树的复杂性(大小)及其拟合训练数据的能力,从更大的、完全生长的树中选择最佳子树。修剪过程由称为复杂性参数 (α) 的超参数指导,该参数控制树大小和精度之间的权衡。

        评估修剪后的树木性能: 在单独的验证数据集上或通过交叉验证来评估修剪后的决策树的性能。测量相关指标,例如准确率、精确度、召回率、F1 分数(用于分类)或均方误差(用于回归)。

2 限制树深度:

        限制树的最大深度可防止其变得太深和太复杂。深树更容易出现过拟合,因为它们可能会捕获数据中的噪声或异常值。

        限制树的深度会鼓励模型学习更简单的决策边界,这通常会导致更好的泛化。

3 每片叶子的最小样本数 

        设置叶节点中所需的最小样本数可防止创建实例很少的节点。实例较少的节点更有可能捕获数据中的噪声或异常值。
        通过要求每片叶子的样本数量最少,树可以从更具代表性的数据子集中学习,从而降低过拟合的风险。

七、优缺点分析

7.1 优势:

  1. 可解释性:决策树易于解释,因为它们表示分层树结构中的决策规则。这使得它们适合向非专家解释预测背后的原因。
  2. 简单性:决策树通过将复杂的决策路径分解为一系列简单、直观的决策来模仿人类的决策过程。这种简单性使它们易于理解和可视化。
  3. 处理混合数据类型:决策树可以处理数值数据和分类数据,使其适用于各种应用程序,而无需进行大量的数据预处理。
  4. 非线性关系:决策树可以捕获特征与目标变量之间的非线性关系,而无需进行特征工程或转换。
  5. 隐式特征选择:在训练过程中,决策树会自动选择信息量最大的特征进行拆分,从而深入了解特征的重要性。
  6. 对异常值的鲁棒性:决策树对数据中的异常值和缺失值具有鲁棒性,因为它们不依赖于基于距离的指标。

7.2 缺点

  1. 过拟合 :决策树容易出现过拟合,尤其是当允许其增长到过深或过复杂时。修剪和设置最大深度等技术对于缓解过拟合是必要的。
  2. 不稳定性:训练数据的微小变化可能导致决策树的显著差异,使它们成为不稳定的模型。像随机森林这样的集成方法可以通过聚合多个决策树来帮助解决这个问题。
  3. 偏向优势类:在类分布不平衡的分类任务中,决策树倾向于偏向优势类,导致少数类的性能欠佳。
  4. 高方差:决策树具有高方差,这意味着它们对训练数据的变化很敏感,如果没有适当的正则化,可能无法很好地泛化到看不见的数据。
  5. 有限的表达能力:尽管决策树能够捕获非线性关系,但与神经网络或梯度提升机等更复杂的模型相比,决策树的表现力有限。
  6. 贪婪的本质:决策树在训练过程中使用贪婪的、自上而下的方法,这可能并不总是导致全局最优分裂,并可能导致次优树。

八、结论

        总之,决策树是多功能且功能强大的机器学习模型,具有许多优势,包括简单性、可解释性和灵活性。由于它们能够处理数值和分类数据,以及对决策过程的直观表示,它们被广泛用于各个领域的分类和回归任务。

        决策树根据简单的决策规则将特征空间划分为多个区域,使其易于理解和解释。它们提供了对预测的最重要特征的见解,并为决策过程提供了透明度,这对于可解释性至关重要的应用至关重要,例如医疗保健或金融。

        “决策树”的旅程充满了热情和奉献精神,致力于分享对不断发展的科技世界的知识和见解。得到以下机构的支持和认可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1690538.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【设计模式深度剖析】【2】【结构型】【装饰器模式】| 以去咖啡馆买咖啡为例 | 以穿衣服出门类比

👈️上一篇:代理模式 目 录 装饰器模式定义英文原话直译如何理解呢?4个角色类图1. 抽象构件(Component)角色2. 具体构件(Concrete Component)角色3. 装饰(Decorator)角色4. 具体装饰…

vue + SpringBoot + flowable 实现工作流审批功能 (流程图部署)

目录 搭建前端vue项目 vue init webpack project_name 初始化项目 导入 element-ui 框架 npm install element-ui -s 设置 element-ui 全局配置 编辑 main.js 文件 import ElementUI from "element-ui"; // ui框架导入 import element-ui/lib/theme-chal…

基于PID控制器的天线方位角位置控制系统simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于PID控制器的天线方位角位置控制系统simulink建模与仿真。通过零极点配置的方式实现PID控制器的参数整定。 2.系统仿真结果 3.核心程序与模型 版本:MATLAB202…

【面试干货】杨辉三角形

【面试干货】杨辉三角形 1、实现思想2、代码实现 💖The Begin💖点点关注,收藏不迷路💖 杨辉三角形(也称帕斯卡三角形)是一个规则的数字三角形,它的构造方法是,第一行只有一个数字1&a…

python-鸡兔同笼问题:已知鸡和兔的总头数与总脚数。求笼中鸡和兔各几只?

【问题描述】典型的鸡兔同笼问题。 【输入形式】输入总头数和总脚数两个实数:h,f 【输出形式】笼中鸡和兔的个数:x,y 【样例输入】16 40 【样例输出】鸡12只,兔4只 【样例说明】输入输出必须保证格式正确。…

FL Studio2025中文最新版本专业编曲软件有哪些新功能?

FL Studio 21,也被音乐制作爱好者亲切地称为“水果编曲软件”,是比利时的Image-Line公司研发的一款完整的音乐制作环境或数字音频工作站(DAW)。自从1990年代推出以来,FL Studio 以其直观的用户界面、丰富的插件支持和强…

苹果CMS:怎么重新安装

当我们安装好苹果CMS之后苹果cms:介绍及安装,但是最好我们在安装的时候配置好对应配置后,备份一份,如果不记得哪里配置出了问题,出现一些不可预料的问题,那我们可以简单暴力的直接重新安装,我们…

PointCloudLib 点云半径滤波实现 C++版本

0.展示效果 滤波之前 1.算法原理 半径滤波原理非常直观,主要用于平滑三维点云数据并去除离群点。 设定搜索半径:首先,为每个点设定一个搜索半径r。这个半径定义了该点周围的一个球形区域。计算邻域点数:接着,计算每个点在其搜索半径r内的邻近点的数量。判断与过滤:根据…

vue 展示svg矢量图可缩放拖动

使用插件&#xff1a;svg-pan-zoom <template> <!-- svg图--><div id"svgContainer"></div> </template><script> import svgPanZoom from svg-pan-zoom import svgFile from ../datav/img/220kVscb.svg // 路径根据实际情况调…

大模型实战讲师叶梓:通过视频生成实现基于物理的3D对象交互——PhysDreamer

随着虚拟现实(VR)和增强现实(AR)技术的飞速发展&#xff0c;用户对于虚拟体验的真实性提出了更高的要求。在这样的背景下&#xff0c;PhysDreamer应运而生&#xff0c;它是一项创新的技术&#xff0c;能够为静态3D对象赋予逼真的物理交互动态&#xff0c;极大地丰富了虚拟环境的…

Vue的router.addRoutes不起作用

Vue的router.addRoutes()不起作用解决方案 最近在学习制作后台管理系统的时候&#xff0c;涉及到了权限&#xff0c;在通过后台获取到数据后使用router.addRoutes()时不起作用。 最终发现左侧菜单组件中的路由是根据this.$router.options.routes来渲染的&#xff0c;最终使用…

C++ | Leetcode C++题解之第110题平衡二叉树

题目&#xff1a; 题解&#xff1a; class Solution { public:int height(TreeNode* root) {if (root NULL) {return 0;}int leftHeight height(root->left);int rightHeight height(root->right);if (leftHeight -1 || rightHeight -1 || abs(leftHeight - rightH…

将Surface的分辨率减半以省电(二合一本\笔记本电脑适用)

【完全自定义分辨率教程】这篇教程用于将Surface之类的高分屏&#xff08;高分辨率&#xff09;的二合一本或笔记本等的分辨率调整为原来的一半&#xff0c;以实现省电等目的。 下载CRU&#xff08;Custom Resolution Utility&#xff09;解压后&#xff0c;打开CRU.exe选择当…

交叉编译——

什么是交叉编译 交叉编译 是在一个平台上生成临海一个平台可执行代码. eg.在windows上面编写C51代码&#xff0c;并编译生成可执行代码。如xx.hex 我们在Ubuntu上编写树莓派的代码&#xff0c;并编译成可执行代码。a.out. 是在树莓派上运行&#xff0c;不在Ubuntu Linux上面运…

每日练习之排序——链表的合并;完全背包—— 兑换零钱

链表的合并 题目描述 运行代码 #include<iostream> #include<algorithm> using namespace std; int main() { int a[31];for(int i 1;i < 30;i)cin>>a[i];sort(a 1,a 1 30);for(int i 1;i < 30;i)cout<<a[i]<<" ";cout&…

Redis实现热点数据排行榜或游戏积分排行榜

数据库中的某张表中存储着文章的浏览量&#xff0c;或者点赞数等&#xff0c;或者游戏积分等数据...... 这些数据的更新在redis中完成&#xff0c;并定时同步到mysql数据库中。 而如果要对这些数据进行排序的话&#xff1a; Redis中的Sorted Set(有序集合)非常适合用于实现排…

​​​【收录 Hello 算法】第 10 章 搜索

目录 第 10 章 搜索 本章内容 第 10 章 搜索 搜索是一场未知的冒险&#xff0c;我们或许需要走遍神秘空间的每个角落&#xff0c;又或许可以快速锁定目标。 在这场寻觅之旅中&#xff0c;每一次探索都可能得到一个未曾料想的答案。 本章内容 10.1 二分查找10.2 二…

Obsidian Git 多端同步

2023年6月&#xff0c;某云笔记限制了免费用户最多同时登录 2 台设备&#xff0c;想要增加设备数量需要付费开通会员。之后我一直想找一款合适的笔记本软件&#xff0c;年底尝试了Obsidian&#xff0c;断断续续摸索了好几天终于成功了。将那时的笔记拿来分享一下。 相关地址&am…

如何部署一个基本符合ERC20的智能合约

运行genache-cli 运行以下命令genache-cli下载MetaMask浏览器拓展钱包 添加账户 导入账户 输入genache-cli生成其中的密钥 选择【显示测试网络】点击【添加网络】 添加自己本地的网络 选择该测试网络&#xff0c;账号里就会有100RETH 在remix里接通这个测试帐号 …

【SQL Server001】SQLServer2016常用函数实战总结(已更新)

1.熟悉、梳理、总结下SQL Server相关知识体系。 2.日常研发过程中使用较少&#xff0c;随着时间的推移&#xff0c;很快就忘得一干二净&#xff0c;所以梳理总结下&#xff0c;以备日常使用参考 3.欢迎批评指正&#xff0c;跪谢一键三连&#xff01; 总结源文件资源下载地址&am…