机器学习入门教学——决策树

1、简介

  • 决策树算法是一种归纳分类算法,它通过对训练集的学习,挖掘出有用的规则,用于对新数据进行预测。
  • 决策树算法属于监督学习方法。
  • 决策树归纳的基本算法是贪心算法,自顶向下来构建决策树。
    • 贪心算法:在每一步选择中都采取在当前状态下最好/优的选择。
  • 简单来说,决策树就是做决策的树,类似于流程图的结构,其中每个内部节点代表一个属性上的“判断”,每个分支代表测试的结果,每个叶节点代表一个测试结果,从根到叶的路径代表分类规则。
  • 决策树的结构:

2、原理

  • 决策树希望通过每次分支节点的“决策”使结果变得更纯粹。也就是通过层层筛选,让是否批准分成“批准”和“拒绝”的单一子集。
  • 举个简单的例子:
    • 使用模型快速判断银行是否给客户放贷。数据经过下列分类之后,最终只剩下单一的子集。
    •  
    • 模型需要学习哪些特征和相应的正确阈值才能最好地分割数据,即有工作、有房子、信誉,应该选择哪些,应该选择何值。所以,在决策树的生成过程中,分割方法即属性选择的度量是关键。

2.1、基尼系数

  • 基尼系数(Gini Index)是决策树学习中常用的一种划分评价指标。
  • 基尼系数计算公式:(一减去所有类别概率的平方)
  • 上述二分分类问题中,公式为:
  • 含义:基尼系数衡量了一个数据集合的不确定性。
  • 例如:
    • (基尼系数随概率的变化)
  • 在决策树中,基尼系数最小意味着分割后子集合的纯度最高。所以,选择基尼系数最小的属性,来作为决策树下一级分类的标准即可。

2.2、生成过程

  • 计算公式:
2.2.1、选择第一个分类标准
  • 首先根据贷款结果计算基尼系数。
    •  
    • 可以看出这个基尼系数非常大。
  • 再以有无工作来计算基尼系数。
    •  
    • 计算以工作为分类标准的基尼系数需要通过加权的方式求和得到该标准最终的基尼系数。
  • 以此类推,可以计算出以房子和信誉为分类标准的基尼系数。
  • 其中,以房子为分类标准的基尼系数最小,所以选择它为标准来构建决策树。
2.2.2、选择下一个分类标准
  • 根据上述分类,左边已经是一个单一子集,不需要再进行分类。我们对右边的子集进行分类。
  • 首先根据贷款结果计算基尼系数。
    •  
  • 再计算出以工作和信誉为分类标准的基尼系数(只在没有房子的客户中)。
  • 其中,以工作为分类标准的基尼系数最小,所以选择它为标准来构建决策树。
  • 此时,所有的叶节点都是单一子集,分类完成。

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

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

相关文章

MR源码解析和join案例

MR源码解析 new Job(): 读取本地文件, xml配置job.start(): 启动线程job的run():线程方法 runTasks(): 传入对应的接口,启动map或者reduceMapTask类的run(): 设置map阶段的参数,初始化任务,创建上下文对象 创建读取器LineRecordReader判断是…

Visual Studio 新建类从默认internal改为public

前言 之前一直用的Resharp辅助编写C#代码,Resharp用起来的确方便不少,但是太消耗开发机内存了。重装电脑后,还是决定使用Visual Studio内置的功能。 默认情况下,Visual Studio 中生成一个类或接口是internal类型的,而…

EagleSDR USB HAT FT600

给EagleSDR做了个USB 3.0的子卡,采用FT600方案,实物如下: 用FT600DataStreamerDemoApp测试,速度如下: 由于FT600是16bit的接口,如果用FT601的32bit接口,性能应该还会有大幅提升。 测试代码很简…

Notepad++下载安装

自己在 找Notepad发现网上的网址参差不齐,自己找到的一个不错下载链接见文末! Notepad 是一个免费的代码编辑器,专为在微软 Windows 环境下使用。它是一个开源项目,采用 GPL 许可证,并使用 C 编程语言结合 Win32 API 和…

数据驱动的数字营销与消费者运营

引言:基于海洋馆文旅企业在推广宣传中,如何通过指标体系量化分析广告收益对业务带来的收益价值的思考? 第一部分:前链路引流投放的策略与实战 1.1 动态广告的实现: 偶然与必然 动态广告是一种基于实时数据和用户行为的广告形式,它…

Mysql--事务

事务 开始之前,让我们先想一个场景,有的时候,为了完成某个工作,需要完成多种sql操作 比如转账 再比如下单 第一步 我的账户余额减少 第二步 商品的库存要减少 第三步 订单表中要新增一项 事务的本质,就是为了把多个操…

Mac 多版本jdk安装与切换

macOS上可以安装多个版本的jdk,方法如下: 1.下载jdk 在Oracle官网上下载不同版本的jdk: https://www.oracle.com/java/technologies/downloads/#java17 方案一 1.查看本机所有的jdk /usr/libexec/java_home -V3. 配置环境变量 打开bash_…

JS 判断数组维度,一维数组还是多维数组

JS 判断数组维度&#xff0c;一维数组还是多维数组 需求分析 需求 想要判断数组的维度&#xff0c;是一维数组还是多维数组 分析 function multiarr(arr){let a 1;for (let i 0;i < arr.length; i){if(arr[i] instanceof Array){a;arr arr[i];this.multiarr(arr);}}retu…

Excel文件生成与下载(SpringBoot项目)(easypoi)

说明 通过接口&#xff0c;导出表格。 使用SpringBoot框架和easypoi表格解析框架&#xff0c;生成Excel表格&#xff0c;并通过接口下载。 表格示例 依赖 版本 <easypoi.version>4.4.0</easypoi.version>依赖 <!-- easypoi --> <dependency><…

【主题课】9.10教师节电子贺卡制作

9.10是教师节,提到老师,大家首先想到的可能就是在学校中教我们文化课的人, 除此之外,在生活或工作中给予我们指导及帮助的人也可称之为老师。 本次课我们就使用 Python 来为所有的老师送上节日的祝福。 课程目标 通过电子贺卡制作,让学生学会阅读源码、巩固课堂知识,如海…

python知识:有效使用property装饰器

一、说明 Python是唯一有习语&#xff08;idioms&#xff09;的语言。这增强了它的可读性&#xff0c;也许还有它的美感。装饰师遵循Python的禅宗&#xff0c;又名“Pythonic”方式。装饰器从 Python 2.2 开始可用。PEP318增强了它们。下面是一个以初学者为中心的教程&#xff…

安科瑞精密配电多回路监控装置在轨道交通项目上的应用

行业背景 轨道交通作为城市公共交通系统的一部分&#xff0c;在过去几十年中得到了广泛的发展和扩张。它在解决城市交通拥堵、减少环境污染、提高城市可持续性等方面发挥了重要作用。随着科技的进步&#xff0c;轨道交通系统也在不断引入新的技术和创新&#xff0c;以提高运行…

WPF Material Design 初次使用

文章目录 前言相关资源快速开始快速开始说明地址 吐槽一下 前言 MD全称MaterialDesignInXamlToolkit&#xff0c;MaterialDesign和Bootstrap一样&#xff0c;都是一个UI风格库。相当于衣服中的休闲服&#xff0c;汉服&#xff0c;牛仔裤一样&#xff0c;就是风格不一样的Ui框架…

VR钢铁实训 | 铁前事业部虚拟仿真培训软件

随着科技的发展&#xff0c;虚拟现实技术在各个行业中的应用越来越广泛。在钢铁冶炼行业中&#xff0c;VR技术也逐渐得到了应用&#xff0c;其中铁前事业部虚拟仿真培训软件就是一项非常有优势的技术。 铁前事业部虚拟仿真培训软件是广州华锐互动打造的《钢铁生产VR虚拟培训系统…

msvcp110.dll是什么意思与msvcp110.dll丢失的解决方法

电脑突然提示msvcp110.dll丢失&#xff0c;无法执行此代码。导致软件无法打开运行&#xff0c;这个怎么办呢&#xff1f;我在网上找了一天的资料&#xff0c;终于把这个问题彻底处理好&#xff0c;也弄清楚了msvcp110.dll丢失的原因及msvcp110.dll丢失修复方法&#xff1f;现在…

HTML和CSS篇章高频面试题【2023】

html篇章 什么是 HTML5&#xff1f; html是一种超文本标记语言&#xff0c;html5它更侧重于语义化&#xff0c;对于seo、搜索引擎优化更好&#xff0c;可以大量应用在移动设备上。 HTML5有哪些的新特性&#xff1f; 新增布局标签&#xff1a;head、footer、nav、article、sect…

docker从零部署jenkins保姆级教程(上)

jenkins&#xff0c;基本是最常用的持续集成工具。在实际的工作中&#xff0c;后端研发一般没有jenkins的操作权限&#xff0c;只有一些查看权限&#xff0c;但是我们的代码是经过这个工具构建出来部署到服务器的&#xff0c;所以我觉着有必要了解一下这个工具的搭建过程以及简…

网络通信深入解析:探索TCP/IP模型

http协议访问web 你知道在我们的网页浏览器的地址当中输入url&#xff0c;未必是如何呈现的吗&#xff1f; web浏览器根据地址栏中指定的url&#xff0c;从web服务器获取文件资源&#xff08;resource&#xff09;等信息&#xff0c;从而显示出web页面。web使用HTTP&#xff08…

数学建模国赛C蔬菜类商品的自动定价与补货决策C

数学建模国赛C蔬菜类商品的自动定价与补货决策C 完整思路和代码请私信~~~ 1.拟解决问题 这是一个关于生鲜商超蔬菜商品管理的复杂问题&#xff0c;需要综合考虑销售、补货、定价等多个方面。以下是对这些问题的总结&#xff1a; 问题 1: 蔬菜销售分析 需要分析蔬菜各品类和…

vs code调试rust乱码问题解决方案

在terminal中 用chcp 65001 修改一下字符集&#xff0c;就行了。有的博主推荐 修改 区域中的设置&#xff0c;这会引来很大的问题。千万不要修改如下设置&#xff1a;