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

统计模型----决策树

决策树

(1)决策树是一种基本分类与回归方法。它的关键在于如何构建这样一棵树。决策树的建立过程中,使用基尼系数来评估节点的纯度和划分的效果。基尼系数是用来度量一个数据集的不确定性的指标,其数值越小表示数据集的纯度越高。决策树的节点划分方式可以根据不同的算法和参数设置而不同。节点划分方式不同,但是基尼系数的下降效果却是一样的,只是具体数值不同。决策树的深度可以根据需求进行设置,如果不限制决策树的深度,它将一直延伸下去,直到所有叶子节点的均方误差为0。
模型特点:优点:计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以处理不相关特征数据。
缺点:可能会产生过度匹配的问题
适用数据类型:数值型和标称型
(3)决策树通常有三个步骤:特征选择、决策树的生成、决策树的修剪。
(4)决策树的构造

决策树学习的算法通常是一个递归地选择最优特征,并根据该特征对训练数据进行分割,使得各个子数据集有一个最好的分类的过程。这一过程对应着对特征空间的划分,也对应着决策树的构建。
1)开始:构建根节点,将所有训练数据都放在根节点,选择一个最优特征,按着这一特征将训练数据集分割成子集,使得各个子集有一个在当前条件下最好的分类。
2)如果这些子集已经能够被基本正确分类,那么构建叶节点,并将这些子集分到所对应的叶节点去。
3)如果还有子集不能够被正确的分类,那么就对这些子集选择新的最优特征,继续对其进行分割,构建相应的节点,如果递归进行,直至所有训练数据子集被基本正确的分类,或者没有合适的特征为止。
4)每个子集都被分到叶节点上,即都有了明确的类,这样就生成了一颗决策树。

(5)决策树分析举例(理解)
例如:小熊毕业了来到一家银行工作,刚刚入行的小熊仔细整理了客户的基本信息。如下图
在这里插入图片描述
在这里插入图片描述
小熊根据以上信息得出基本结论:
(1)按有工作分类:
在这里插入图片描述
(2)按信誉分类的话:
在这里插入图片描述
以上样本结果好像与数据结果相悖
那如果按有工作和信誉因素分类的话:
如果客户有工作那就可以批准贷款,如果客户没有工作的话,我们再考虑他的信誉情况做出判断,这就是利用决策树进行分类的过程。
在这里插入图片描述
标准可以用一个基尼系数来定义:
采用基尼系数进行运算的决策树也称为CART决策树。
基尼系数(gini)用于计算一个系统中的失序现象,即系统的混乱程度(纯度)。基尼系数越高,系统的混乱程度就越高(不纯),建立决策树模型的目的就是降低系统的混乱程度(体高纯度),从而得到合适的数据分类效果。
基尼系数的计算公式如下:
在这里插入图片描述
选择基尼数最小的来作为决策树下一级的标准。
Gini= 1-p(批准)2-p(拒绝)2
当p(批准)=1 p(拒绝)=0 Gini=1-1=0
当p(批准)=0 p(拒绝)=1 Gini=1-0-1=0
当p(批准)=0.5 p(拒绝)=0.5 Gini=1-0.25-0.25=0.5
以以上例子可以得出
Gini= 1-p(9/15)2-p(6/15)2=0.48
Gini(工作,是)=1-(5/5)-0=0
Gini(工作,否)=1-(4/10)-(6/10)=0.48
Gini(工作)=5/15Gini(工作,是)+10/15Gini(工作,否)=0.32
依次算出:Gini(房子)=0.27 Gini(信誉)=0.28
以上可知有房子的基尼系数最小,所以依此为下一次分类的依据:

相关文章:

统计模型----决策树

决策树 (1)决策树是一种基本分类与回归方法。它的关键在于如何构建这样一棵树。决策树的建立过程中,使用基尼系数来评估节点的纯度和划分的效果。基尼系数是用来度量一个数据集的不确定性的指标,其数值越小表示数据集的纯度越高。…...

C# List 复制之深浅拷贝

C# List 复制 之深浅拷贝 声明类 public class TestStu{public int Number{get;set; }public string Name{get;set; }}public static async Task<int> Main(string[] args){var stu1 new TestStu(){Number 1,Name "1"};var stu2 new TestStu(){Numbe…...

论<script> 标签可以直接写在 HTML 文件中的哪些位置?(可以将 <script> 标签直接插入到 HTML 文件的任何位置)

可以将 <script> 标签直接插入到 HTML 文件的任何位置&#xff0c;以在相应位置执行 JavaScript 代码。 以下是几个示例&#xff1a; 1.<head> 元素内部&#xff1a;在 <head> 元素内部放置 <script> 标签时&#xff0c;脚本将在页面加载过程中被下载和…...

【MySQL进阶】--- 存储引擎的介绍

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【MySQL学习专栏】&#x1f388; 本专栏旨在分享学习MySQL的一点学习心得&#xff0c;欢迎大家在评论区讨论&#x1f48c; 目录 一、什么…...

self-XSS漏洞SRC挖掘

本文由掌控安全学院 - 一朵花花酱 投稿 Markdown是一种轻量级标记语言&#xff0c;创始人为约翰格鲁伯&#xff08;John Gruber&#xff09;。它允许人们使用易读易写的纯文本格式编写文档&#xff0c;然后转换成有效的 XHTML&#xff08;或者HTML&#xff09;文档。这种语言吸…...

1859. 将句子排序

目录 一、题目 二、代码 一、题目 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 二、代码 定义了一个vector<vector<string>> v(MAX);采用const string& word : v[k] word 就会依次取得 v[k] 中的每个元素&#xff08;v[k][0],…...

普通学校,普通背景,普通公司,不普通总结。

作者&#xff1a;阿秀 InterviewGuide大厂面试真题网站&#xff1a;https://top.interviewguide.cn 这是阿秀的第「313」篇原创 小伙伴们大家好&#xff0c;我是阿秀。 可能很多人点开牛客、知乎、B站&#xff0c;一看帖子的标题都是"某985xxxx"、"不入流211xxx…...

Flink之Watermark生成策略

在Flink1.12以后,watermark默认是按固定频率周期性的产生. 在Flink1.12版本以前是有两种生成策略的: AssignerWithPeriodicWatermarks周期性生成watermarkAssignerWithPunctuatedWatermarks[已过时] 按照指定标记性事件生成watermark 新版本API内置的watermark策略 单调递增的…...

提升API文档编写效率,Dash for Mac是你的不二之选

在编写和开发API文档的过程中&#xff0c;你是否经常遇到查找困难、管理混乱、效率低下等问题&#xff1f;这些都是让人头疼的问题&#xff0c;但现在有了Dash for Mac&#xff0c;一切都将变得简单而高效。 Dash for Mac是一款专为API文档编写和管理设计的工具&#xff0c;它…...

无人注意,新安装的 Ubuntu 23.04 不支持安装 32 位应用

导读新安装的 Ubuntu 23.04 不支持安装 32 位应用。 无人注意&#xff0c;新安装的 Ubuntu 23.04 不支持安装 32 位应用 有用户报告&#xff0c;在新安装的 Ubuntu 23.04 上从 Ubuntu 仓库安装的 Steam 客户端是不工作的。在 Ubuntu 23.04 中使用了基于 Flutter 的新安装程序…...

全面横扫:dlib Python API在Linux和Windows的配置方案

前言 在计算机视觉和人工智能领域&#xff0c;dlib是一个备受推崇的工具库。它为开发者提供了强大的图像处理、机器学习和深度学习功能。在计算机视觉项目中&#xff0c;配置dlib Python API是一个重要的初始步骤。本文将引导读者详细了解在Linux和Windows系统上安装和配置dli…...

30种编程语言写国庆节快乐,收藏后改改留着拜年用

文章目录 核心代码版多行代码单行代码 核心代码版 Python&#xff1a;print(“国庆节快乐&#xff01;&#xff01;&#xff01;”)C&#xff1a;printf(“国庆节快乐&#xff01;&#xff01;&#xff01;”);C&#xff1a;cout<<“国庆节快乐&#xff01;&#xff01;…...

SpringBoot2.7.9 配置文件加载方式

ConfigDataLocationResolver接口方法说明 isResolvable: 判断是否是需要转换的资源 resolve: 将单个ConfigDataLocation转换为ConfigDataResource集合&#xff0c;在激活环境配置之前加载&#xff0c;也就是profile文件加载之前加载 resolveProfileSpecific: 将单个ConfigDataL…...

详解C语言—文件操作

目录 1. 为什么使用文件 2. 什么是文件 3. 文件的使用 文件指针 文件的打开和关闭 三个标准的输入/输出流&#xff1a; 4. 文件的顺序读写 对字符操作&#xff1a; fputc&#xff1a; fgetc&#xff1a; 练习复制整个文件&#xff1a; 对字符串操作&#xff1a;…...

IntelliJ IDEA 常用快捷键一览表

目录 1-IDEA的日常快捷键 第1组&#xff1a;通用型 第2组&#xff1a;提高编写速度&#xff08;上&#xff09; 第3组&#xff1a;提高编写速度&#xff08;下&#xff09; 第4组&#xff1a;类结构、查找和查看源码 第5组&#xff1a;查找、替换与关闭 第6组&#xff1a…...

cola 架构简单记录

cola 是来自张建飞&#xff08;Frank&#xff09;的偏实现的技术架构&#xff0c;里面的业务身份和扩展点也被MEAF引用&#xff0c;cola本身由java 实现、但其实可以是一种企业通用的技术架构。 业务身份来源 https://blog.csdn.net/significantfrank/article/details/8578556…...

FFmpeg常用结构体分析

目录 1.AVFormatConext 2.AVInputFormat 3.AVStream 4.AVCodecContext 5.AVPacket 6.AVCodec 7.AVFrame 8.AVIOContext 9.URLProtocol 10.URLContext 1.AVFormatConext AVFormatConext是一个贯穿全局地数据结构&#xff0c;AVFormatConext结构包含很多信息&#xff0c…...

ChatGPT 学习笔记 | 什么是 Prompt-tuning?

文章目录 一、前言二、主要内容三、总结 &#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 一、前言 Prompt-tuning is an efficient, low-cost way of adapting an AI foundation model to new downstream tasks without retraining the model and upd…...

[红明谷CTF 2021]write_shell %09绕过过滤空格 ``执行

目录 1.正常短标签 2.短标签配合内联执行 看看代码 <?php error_reporting(0); highlight_file(__FILE__); function check($input){if(preg_match("/| |_|php|;|~|\\^|\\|eval|{|}/i",$input)){ 过滤了 木马类型的东西// if(preg_match("/| |_||php/&quo…...

JVM学习笔记

JVM学习笔记 复习之前学的内容&#xff0c;同时补充以下知识点&#xff1a;JVM的双亲委派机制、伊甸区与老年代相关知识&#xff1b; 双亲委派机制 首先介绍Java中的类加载器 Java中的类加载器 Bootstrap ClassLoader&#xff08;启动类加载器&#xff09;&#xff0c;默认…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明&#xff1a; 想象一下&#xff0c;你正在用eNSP搭建一个虚拟的网络世界&#xff0c;里面有虚拟的路由器、交换机、电脑&#xff08;PC&#xff09;等等。这些设备都在你的电脑里面“运行”&#xff0c;它们之间可以互相通信&#xff0c;就像一个封闭的小王国。 但是&#…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

利用ngx_stream_return_module构建简易 TCP/UDP 响应网关

一、模块概述 ngx_stream_return_module 提供了一个极简的指令&#xff1a; return <value>;在收到客户端连接后&#xff0c;立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量&#xff08;如 $time_iso8601、$remote_addr 等&#xff09;&a…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作&#xff1a; 1&#xff09;、切换集群 2&#xff09;、切换节点 3&#xff09;、切换到 apparmor 的目录 4&#xff09;、执行 apparmor 策略模块 5&#xff09;、修改 pod 文件 6&#xff09;、…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库&#xff0c;特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序

一、开发环境准备 ​​工具安装​​&#xff1a; 下载安装DevEco Studio 4.0&#xff08;支持HarmonyOS 5&#xff09;配置HarmonyOS SDK 5.0确保Node.js版本≥14 ​​项目初始化​​&#xff1a; ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

反射获取方法和属性

Java反射获取方法 在Java中&#xff0c;反射&#xff08;Reflection&#xff09;是一种强大的机制&#xff0c;允许程序在运行时访问和操作类的内部属性和方法。通过反射&#xff0c;可以动态地创建对象、调用方法、改变属性值&#xff0c;这在很多Java框架中如Spring和Hiberna…...

前端开发面试题总结-JavaScript篇(一)

文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包&#xff08;Closure&#xff09;&#xff1f;闭包有什么应用场景和潜在问题&#xff1f;2.解释 JavaScript 的作用域链&#xff08;Scope Chain&#xff09; 二、原型与继承3.原型链是什么&#xff1f;如何实现继承&a…...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)

Aspose.PDF 限制绕过方案&#xff1a;Java 字节码技术实战分享&#xff08;仅供学习&#xff09; 一、Aspose.PDF 简介二、说明&#xff08;⚠️仅供学习与研究使用&#xff09;三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...