【机器学习300问】27、什么是决策树?

〇、两个预测任务

(1)任务一:银行预测偿还能力

        当前,某银行正致力于发掘潜在的放贷用户。他们掌握了每位用户的三个关键特征:房产状况、婚姻状况以及年收入。此外,银行还拥有过往这些用户的债务偿还能力的数据。面对这一情境,银行现需制定一套有效的策略,用以评估新用户的偿债能力,从而做出是否向其提供贷款的决策。

(2)任务二:相亲优质男性

        一位母亲想要为她的女儿介绍合适的男朋友,女孩对此提出了四个明确的要求:年龄、相貌、收入、公务员。她明确表示,只有满足条件的男性,她才愿意与之相亲。面对如此具体的条件,母亲该如何在浩渺的婚恋市场中挑选出一位优质男性,让女儿愿意与之相见呢?

一、什么是决策树

        相信你看到上面两个例子的时候,心中已经有了一个判断。你是怎么做的判断呢?我先来说说我是怎么做出决策的。将我所做的决策画成树,这就被称为决策树。

(1)直观理解

        对与任务一来说,如果我是银行,我肯定选择对有房子、结了婚、年收入高的人进行放贷。这里思考几个问题,有房子难道就一定能还贷嘛?万一他的房子很偏僻很小不值几个钱呢?不结婚的人也许存款更多,还款能力还强些呢?到底怎么定义高收入呢?

图1

        对于任务二来说,如果我是这个女孩儿,我也许会选择年轻点的、长得还行就好、收入中等就行、最好是公务员。同样思考一下,从我的决策中就能够看出有许多的模糊字眼。

图2

 (2)定义

        决策树是一种有监督学习算法,通过特征选择和递归分割数据集构建树状模型,用于分类或回归分析。其中每个内部节点代表一个特征测试,分支表示不同的测试结果,而叶节点则对应最终的类别或数值预测。分支节点又叫决策节点,叶子节点又叫预测结果节点。

  • 每个内部节点代表一个特征或属性测试。
  • 每个分支表示该特征可能的输出或取值。
  • 每个叶节点(终端节点)则代表一个决策结果或者分类标签,在分类任务中对应某个类别的预测;而在回归任务中,叶节点会对应一个连续数值的预测。

二、不就是if-else语句吗怎么被称为机器学习模型

        如果你也有这种疑问,不妨回顾一下先前我们做的两个小预测任务,上面提出了的思考问题可以总结为两个:我们为什么会这样的特征来辅助决策?以及我们要用怎样的阈值做为判断依据?

        决策树确实可以被视为一系列嵌套的if-else语句,但其作为机器学习模型的意义在于,这些if-else规则不是由人类程序员手动编写,而是通过从训练数据中自动学习得出。在构建决策树的过程中,特征的选择和阈值的确立都是根据优化准则自动生成的。

(1)该选哪些特征?

        在构建决策树时,算法会遍历所有可能的特征,并计算每个特征用于划分数据集时带来的信息增益、基尼不纯度或者其他类似的评价指标(取决于所使用的具体算法)。信息增益是衡量一个特征对分类纯度提升程度的一种量度,而基尼不纯度则用来表示样本集合不确定性或随机性的大小。在每一轮迭代中,算法会选择当前能够带来最大信息增益或最小基尼不纯度的特征作为节点来划分数据集。这样做的目的是逐步形成一个能最好地描述输入数据与输出类别之间关系的树状结构。

(2)该选哪个阈值?

        对于数值型特征来说,在确定了使用该特征进行分割之后,算法需要找到一个最优的阈值来划分数据。这个阈值通常是在当前特征的所有可能取值中搜索出来的,使得基于此阈值划分数据后,子集的信息增益或基尼不纯度达到最优。例如,在CART(Classification and Regression Trees)算法中,对于连续特征,会在特征的所有不同取值上尝试,以找到最佳分割点。

三、决策树的优缺点

(1)优点

  1. 易于理解和解释决策树的结构直观且易于理解,可以生成易于解释的规则,对于非专业人士来说也很友好,可以可视化展示整个决策过程。

  2. 可处理多种类型的数据:无论是离散型、连续型还是混合型数据,决策树都可以直接处理,无需进行复杂的预处理。

  3. 能够处理缺失值:在一定程度上,决策树算法可以自动处理特征值缺失的情况,通过特定策略(如基于均值、中位数或众数填充)来决定缺失值所在分支。

  4. 特征选择能力:决策树能够对输入变量的重要性进行排序,帮助识别哪些特征对预测结果影响最大。

  5. 并行性:决策树训练过程中,不同节点的划分可以相对独立地计算,理论上支持并行化构建。

(2)缺点

  1. 过拟合问题:决策树容易生成过于复杂的树结构,导致过拟合训练数据,不适用于未见过的新数据,即泛化能力可能较差

  2. 不擅长处理连续数值特征:虽然决策树可以处理连续特征,但在处理连续变量时可能不如其他模型(如线性回归)那样准确有效。

  3. 偏向于选择类别较多的特征:决策树倾向于选择拥有更多类别的特征进行分割,这可能导致忽略那些对决策真正重要的但类别较少的特征。

  4. 无法捕捉非线性关系和光滑边界:对于数据分布较为复杂或者分类边界平滑的问题,决策树的表现可能不尽如人意。

  5. 不稳定对于数据的小幅变动敏感,尤其是当多个特征具有相近重要性时,决策树的结果可能会因为样本顺序的变化而产生较大差异。

四、如何避免决策树的过拟合?

避免决策树过拟合的主要策略包括:

  • 设置树的最大深度:限制决策树的最大深度可以防止模型过于复杂,减少节点划分的次数,从而降低过拟合的风险。

  • 最小样本数(或叶子节点最少样本数):要求每个内部节点(或者叶子节点)至少包含一定数量的样本,这样可以防止在训练集上构建过度复杂的分支结构。

  • 剪枝:通过后剪枝或预剪枝的方法来简化决策树。后剪枝是先生成一颗完整的决策树,然后从底部开始自下而上地删除对验证集性能改善不大的子树;预剪枝则是在构建过程中,每当扩展一个节点时,都基于验证集的表现决定是否继续划分。

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

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

相关文章

Linux系统——LVS-DR群集部署及拓展

目录 引言 1.LVS的工作模式及其工作过程 2.列举出LVS调度算法 3.LVS调度常见算法(均衡策略) 3.1固定调度算法:rr,wrr,dh,sh 3.2动态调度算法:wlc,lc,lblc 4.LVS三种工作模式区别 一、I…

更快更强,Claude 3全面超越GPT4,能归纳15万单词

ChatGPT4和Gemini Ultra被Claude 3 AI模型超越了? 3月4日周一,人工智能公司Anthropic推出了Claude 3系列AI模型和新型聊天机器人,其中包括Opus、Sonnet和Haiku三种模型,该公司声称,这是迄今为止它们开发的最快速、最强…

Linux系统——SElinux

目录 前言 一、SELinux 的作用及权限管理机制 1.SELinux 的作用 1.1DAC 1.2MAC 1.3DAC 和 MAC 的对比 2.SELinux 基本概念 2.1主体(Subject) 2.2对象(Object) 2.3政策和规则(Policy & Rule)…

Nginx+Tomcat实现负载均衡动静分离

目录 一、背景与环境 1. 背景 2. 环境图示 3. 目标 二、操作过程 1. 第一层 2. 第二层 一、背景与环境 1. 背景 在一个Web应用程序中,通常会将动态内容(由Tomcat处理)与静态内容(如图片、CSS、JavaScript文件等&#xff…

什么是5G边缘计算网关?

随着5G技术的飞速发展和普及,边缘计算作为5G时代的关键技术之一,正日益受到业界的关注。而5G边缘计算网关,作为连接5G网络和边缘计算节点的桥梁,扮演着至关重要的角色。HiWoo Box,作为一款卓越的5G边缘计算网关&#x…

springcloud:3.5测试慢调用熔断降级

服务提供者【test-provider8001】 Openfeign远程调用服务提供者搭建 文章地址http://t.csdnimg.cn/06iz8 相关接口 测试远程调用:http://localhost:8001/payment/index 服务消费者【test-consumer-resilience4j8004】 Openfeign远程调用消费者搭建 文章地址http://t…

学习大数据,所必需的java基础(8)

文章目录 字符缓冲流字符缓冲输出流 _Buffered和Writer字符缓冲输入流字符缓冲流练习 转换流字符编码字符集转换流转换流_OutputStreamWriter序列流和反序列流的介绍序列化流_ObjectOutputStream反序列化_ObjectInputStream不想被序列化操作反序列化时出现的问题以及分析和解决…

解决:hive数据库初始失败

1、背景 采用Mysql数据库保存hive元数据时,我们一般是这样操作: 启动mysql服务;用mysql新建一个库(比如库名为"hive“,这个“hive”与hive-site.xml中的local:3306/hive的“hive”对应,是用来保存hiv…

滴滴基于 Clickhouse 构建新一代日志存储系统

ClickHouse 是2016年开源的用于实时数据分析的一款高性能列式分布式数据库,支持向量化计算引擎、多核并行计算、高压缩比等功能,在分析型数据库中单表查询速度是最快的。2020年开始在滴滴内部大规模地推广和应用,服务网约车和日志检索等核心平…

SkyWalking 本地启动以及闪退问题

1. 下载包 Downloads | Apache SkyWalking SkyWalking APM包含OAP和UI Java Agent 就是Java 的探针 2. 运行 UI 默认端口是 8080, OAP 默认端口是 11800(grpc)12800(http) 如果占用可以修改配置文件 UI 项目的配…

LVS 负载均衡部署的三种模式 与搭建dr模式具体步骤

一 LVS 负载均衡部署的模式 LVS 有三种负载均衡的模式,分别是VS/NAT(nat 模式)、VS/DR(路由模式)、VS/TUN(隧道模式)。 (一)三种模式原理 及优缺点 1,nat 模式 1.1 原理 原理:首先负载均衡器接收到客户的请求数据包时&am…

GPT-4技术解析:与Claude3、Gemini、Sora的技术差异与优势对比

【最新增加Claude3、Gemini、Sora、GPTs讲解及AI领域中的集中大模型的最新技术】 2023年随着OpenAI开发者大会的召开,最重磅更新当属GPTs,多模态API,未来自定义专属的GPT。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义,不亚…

b站小土堆pytorch学习记录—— P18-P22 神经网络+小实战

文章目录 一、卷积层 P181.卷积操作2.代码 二、池化层 P191.池化层简单介绍2.代码(1)池化操作中数字的变化(2)池化操作对图片的影响 三、非线性激活 P201.简要介绍2.代码 四、线性层及其他层介绍 P211.线性层2.代码 五、搭建小实战…

Conda快速安装的解决方法(Mamba安装)

如果你的Conda安装了,你可能会发现一个问题,就是使用Conda install 安装某个软件时,会特别慢,这时候呢?你会上网去搜,然后大家解决的方法呢。一是告诉你镜像可以下载快一点,二是,Mam…

基于逻辑回归实现乳腺癌预测(机械学习与大数据)

基于逻辑回归实现乳腺癌预测 将乳腺癌数据集拆分成训练集和测试集,搭建一个逻辑回归模型,对训练集进行训练,然后分别对训练集和测试集进行预测。输出以下结果: 该模型在训练集上的准确率,在测试集上的准确率、召回率和…

hyperf 二十五 数据迁移 一

教程:Hyperf 版本说明 一 生成迁移 php bin/hyperf.php gen:migration create_users_table 执行文件:Hyperf\Database\Commands\Migrations\GenMigrateCommand 功能:创建迁移文件 参数: name 文件名称 选项: c…

Rust 安装与版本更新

Rust 简介 Rust ,一门赋予每个人构建可靠且高效软件能力的语言,主打内存安全。 2024年2月,在一份 19 页的报告《回归基础构件:通往安全软件之路》中,白宫国家网络主任办公室(ONCD)呼吁开发者使…

NoSQL--3.MongoDB配置(Linux版)

目录 2.2 Linux环境下操作 2.2.1 传输MongoDB压缩包到虚拟机: 2.2.2 启动MongoDB服务: 2.2 Linux环境下操作 2.2.1 传输MongoDB压缩包到虚拟机: (笔者使用XShell传输) 如果不想放在如图的路径,删除操作…

Appium系列(1)安装启动Appium

Appium环境准备 Mac电脑jdk环境AndroidSDK环境node>8.1.0(最好用最新版本) 安装命令 npm i -g appium安装不成功请检查node 版本是否正确 安装成功命令行输入appium回车查看 安装驱动程序 1、先检查当前驱动情况 通过 appium driver list 进行…

RK356X RK3588 单独编译kernel 与烧录

RK356X RK3588 单独编译kernel 与烧录 可以快速提高我们开发与调试速度 网上可查到的方法如下: RK3568 Android12: 1.添加kernel-4.19/makekernel.sh #!/bin/sh make -j24 ARCHarm64 CC../prebuilts/clang/host/linux-x86/clang-r416183b/bin/clang …