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

2023-10-27

1、简介

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

2、原理

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

2.1、基尼系数

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

2.2、生成过程

  • 计算公式:
2.2.1、选择第一个分类标准
  • 首先根据贷款结果计算基尼系数。
    •  
    • 可以看出这个基尼系数非常大。
  • 再以有无工作来计算基尼系数。
    •  
    • 计算以工作为分类标准的基尼系数需要通过加权的方式求和得到该标准最终的基尼系数。
  • 以此类推,可以计算出以房子和信誉为分类标准的基尼系数。
  • 其中,以房子为分类标准的基尼系数最小,所以选择它为标准来构建决策树。
2.2.2、选择下一个分类标准
  • 根据上述分类,左边已经是一个单一子集,不需要再进行分类。我们对右边的子集进行分类。
  • 首先根据贷款结果计算基尼系数。
    •  
  • 再计算出以工作和信誉为分类标准的基尼系数(只在没有房子的客户中)。
  • 其中,以工作为分类标准的基尼系数最小,所以选择它为标准来构建决策树。
  • 此时,所有的叶节点都是单一子集,分类完成。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

机器学习入门教学——决策树 的相关文章

随机推荐

  • 用Python开始机器学习(5:文本特征抽取与向量化)

    假设我们刚看完诺兰的大片 星际穿越 设想如何让机器来自动分析各位观众对电影的评价到底是 赞 positive 还是 踩 negative 呢 这类问题就属于情感分析问题 这类问题处理的第一步 就是将文本转换为特征 因此 这章我们只学习第一步
  • Hyperledger Fabric 应用实战(3)--配置文件core.yaml

    1 简介 core yaml主要是为Peer服务提供一些配置定义 当Peer节点启动时 会先从命令行获取参数 环境变量 和core yaml读取配置信息 通过docker去搭建一个Peer服务 命令行默认是不带参数的 主要通过docker
  • 考研 打赢这场信息站 上岸

    23考研已经结束了 新的考研马上开始 考研 是一个 持久战 也是一个 信息战 因为大多数同学都是自我监督 自我学习 所以经常出现想要摆烂 放弃的念头 意念坚定的同学只占一小部分 这个时候我们就要先在考研之前进行问题分析 这是一个非常非常重要
  • Spark Streaming入门

    什么是Spark Streaming 首先 什么是流 streaming 数据流是连续到达的无穷序列 流处理将不断流动的输入数据分成独立的单元进行处理 流处理是对流数据的低延迟处理和分析 Spark Streaming是Spark API核
  • openssl常用参数

    文章目录 前言 对称加密 标准语法 常用选项 应用示例 单向加密 标准语法 常用选项 应用示例 参考文档 前言 OpenSSL 是一个开源项目 可以实现 秘钥证书管理 对称加密和非对称加密 其主要由一下三个组件组成 openssl 多用途的
  • Synchronized与锁升级

    目录 1 先从阿里及其他大厂面试题说起 2 路线总纲 3 Synchronized的性能变化 4 Synchronized锁种类及升级步骤 4 1多线程访问情况 3种 4 2升级流程 4 3无锁 4 4偏向锁 4 5轻量级锁 4 6重量级锁
  • 【经典】springboot 配置文件统一管理

    背景 为实现快速搭建和开发 项目以Springboot框架搭建 springboot搭建的项目可以将项目直接打成jar包并运行 无需自己安装配置Tomcat或者其他服务器 是一种方便快捷的部署方式 假设项目以最常规的方式打包成一个整体的ja
  • Onvif协议学习:7、鉴权认证

    Onvif协议学习 7 鉴权认证 文章目录 Onvif协议学习 7 鉴权认证 1 前言 2 ONVIF哪些接口需要认证 3 如何认证 4 安装OpenSSL 5 实现认证 6 特别注意 原文链接 https blog csdn net be
  • QT学习(十九)——用QFile读写文件

    写文件 两种方法 1 第一种使用QString获取编辑区的内容之后直接用toUtf8 转化为QByteArray 2 第二种使用QString获取编辑区的内容之后先转化成std string 再转换成char 不过最后的文件类型都是UTF
  • Zookeeper(一)简介说明

    1 1 什么是Zookeeper Zookeeper是一个高效的分布式协调服务 它暴露了一些公用服务 比如命名 配置管理 同步控制 群组服务等 我们可以使用ZK来实现比如达成共识 集群管理 leader选举等 Zookeeper是一个高可用
  • 编写高质量代码:改善Java程序的151个建议(第9章:多线程和并发___建议125~131)

    建议125 优先选择线程池 建议126 适时选择不同的线程池来实现 建议127 lock与synchronized是不一样的 建议128 预防线程死锁 建议129 适当设置阻塞队列的长度 建议130 使用CountDownLatch协调子线
  • Spring Cloud Alibaba核心组件概述

    目录 概览 Nacos 注册中心 配置中心 Sentinel 限流 熔断降级 控制台 动态规则扩展 Seata AT模式 TCC模式 Saga模式 XA模式 Spring Cloud Gateway 关键特性 核心概念 负载均衡 概览 Sp
  • fetch整个仓库 github_为开源项目做贡献的10个步骤,GitHub贡献的简短指南

    在本文中 我将给出10个简单的步骤 以确保GitHub的贡献快速而干净 贡献的生命周期 步骤 1 fork主仓库 fork主仓库会在你的帐户中创建一个副本 你可以进行更改并将任何代码推送到此fork 而不必担心会弄乱原始代码库 单击页面顶部
  • java中tip是什么意思_tip是什么意思

    tip指的是小费或者是尖端 指点的意思 tip美音可以是 t p 英音是 t p 第三人称单数可以写为tips 复数可以直接写为tips 现在分词是tipping 过去式是tipped 列句 每次给爸妈买些东西 总是能赚到小费 Every
  • IBM --AIX 常用命令

    创建组 mkgroup id 101 info 创建用户 mkuser pgrp staff home home campaign shell usr bin ksh groups staff campaign 解压 unzip campa
  • AcWing 425. 明明的随机数

    题目 明明想在学校中请一些同学一起做一项问卷调查 为了实验的客观性 他先用计算机生成了N个1到1000之间的随机整数 对于其中重复的数字 只保留一个 把其余相同的数去掉 不同的数对应着不同的学生的学号 然后再把这些数从小到大排序 按照排好的
  • golang学习demo4-goroutine并行测试

    知识点 go语言的routine的使用 通道chan的使用 想测试一下go的routine 就写了个求大量素数的程序 分别开1 99个协程进行求解 对比结果 首先是没有开协程的 下面是开了少数几个协程的程序 可以看到在 cnt 5 的时候速
  • Pytorch GPU版本简明下载安装教程

    1 根据自己的显卡型号下载显卡驱动并安装 这一步会更新你的显卡驱动 也可忽略第1步 如果第2步出现问题 返回执行第1步 点击这里下载英伟达显卡驱动 2 安装完成后 win cmd打开命令行 输入nvidia smi 查看GPU信息 右上角C
  • elementUIel-input和el-select宽度不一样

    在vue项目中 使用了element组件的 el input 和 el select组件 设置了相同的宽度 但是宽度显示不一样 给el select添加style width 100 就可以解决 没加样式之前的效果 添加样式 没加样式之后的
  • 机器学习入门教学——决策树

    1 简介 决策树算法是一种归纳分类算法 它通过对训练集的学习 挖掘出有用的规则 用于对新数据进行预测 决策树算法属于监督学习方法 决策树归纳的基本算法是贪心算法 自顶向下来构建决策树 贪心算法 在每一步选择中都采取在当前状态下最好 优的选择