基于基尼指数构建分类决策树[算法+示例]

0 前言

  • 本文主要讲述使用基尼指数构建二叉决策树的算法,并给出例题一步步解析,帮助读者理解。
  • 本文所使用的数据集:贷款.CSV。
  • 读者需要具备的知识:基尼指数计算。

1 基于基尼指数的分类树构建算法

  1. 选择最优特征进行分裂:
    对于决策树的每个节点,遍历数据集中的所有特征。对于每个特征,考虑其所有可能的分割点(对于离散特征,每个不同的值都是一个分割点;对于连续特征,则可能需要将特征值排序后,选择相邻值的中点作为候选分割点)。计算分割后的数据集的基尼指数,选择基尼指数最小的特征和对应的分割点作为最优特征和最优分割点。

  2. 生成子节点:
    使用最优特征和最优分割点将当前节点的数据集分割成两个子集,并为每个子集创建一个新的子节点。

  3. 递归构建子树:
    对每个子节点,重复步骤1和步骤2,直到满足停止条件(如,子节点中的样本都属于同一类别,或者子节点中的样本数少于预设的阈值)。

  4. 构建决策树:
    将上述过程递归执行的结果组织成树形结构,即得到基于基尼指数的分类决策树。

2 示例

  • 该实例采用贷款数据集,详细请见:贷款.CSV 第1.3节。

  • 选择最优特征构建根节点:
    image

  • 构建子节点:
    image

  • 递归构建D2节点:
    image

  • 构建子节点:
    image

  • 递归构建D4节点:
    image

  • 构建二叉分类决策树完成。

3 结语

如有错误请指正,禁止商用。

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

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

相关文章

Node.js版本管理工具之NVM

目录一、NVM介绍二、NVM的下载安装1、NVM下载2、卸载旧版Node.js3、安装三、NVM配置及使用1、设置nvm镜像源2、安装Node.js3、卸载Node.js4、使用或切换Node.js版本5、设置全局安装路径和缓存路径四、常用命令一、NVM介绍 在工作中,不同的项目可能需要不同NodeJS版本,所以维护…

Javaweb-DQL-分组查询

select sex,avg(math) from stu group by sex;-- 1 select sex,avg(math) as 数学平均分,count() as 人数 from stu group by sex;-- 2 select sex,avg(math) as 数学平均分,count() as 人数 from stu where math>=70 group by sex;-- 3 select sex,avg(math) as 数学平均分…

AP3215 8-150V 外围简单 宽输入 电压降压BUCK 恒压恒流驱动器 POE、电动车、扭扭车、电瓶车、车充方案

产品描述 AP3215是 一系列外围电路简洁的宽输入电压降压BUCK 恒压恒流驱动器 ,适用于8- 150V 输入电压范围 的DC-DC 降压应用。 AP3215输出电压通过 FB 管脚设置 ,输出电流通过 CS 电阻设置 ,外围简洁 , 具备高效率 ,低功耗 ,低纹波 , 优异 的线性调整率和负载调整率等优…

HTML 转 PDF API 接口

HTML 转 PDF API 接口 网络工具 / 文件处理 支持网页转 PDF 高效生成 PDF / 提供永久链接。1. 产品功能超高性能转换效率; 支持将传递的 HTML 转换为 PDF,支持转换 HTML 中的 CSS 格式; 支持传递网站 URL,直接转换页面成对应的 PDF 文件; 转换后的 PDF 提供永久存储文件地…

[C++ Daily] 递归锁解决标准锁的典型应用

递归锁解决标准锁的典型应用 先看源码:结果(在A种尝试锁住mutex_时失败,进程等待,死锁无法退出:将std::mutex 用 std::recursive_mutex替换:结果:解析: std::recursive_mutex允许同一个线程对同一个锁对象进行多次上锁,获得多层所有权.

使用 nuxi prepare 命令准备 Nuxt 项目

title: 使用 nuxi prepare 命令准备 Nuxt 项目 date: 2024/9/7 updated: 2024/9/7 author: cmdragon excerpt: 摘要:本文介绍nuxi prepare命令在Nuxt.js项目中的使用,该命令用于创建.nuxt目录并生成类型信息,以便于构建和部署。文章涵盖了命令的基本用法、指定根目录、设置…

sqlserver下利用sqlps.exe白名单绕杀软

sqlserver下利用sqlps.exe白名单绕杀软 前言: 在一次攻防里通过sqlserver盲注拿到一个执行命令权限,但是由于是盲注回显很有问题以及有杀软,所以利用起来非常难受而且拿不到webshell或者上线c2,所以才找到这个方法。 介绍: sqlps.exe是SQL Server附带的一个具有Microsoft签…

五子棋AI:实现逻辑与相关背景探讨(上)bu

合集 - 五子棋AI:遗传算法(1)1.五子棋AI:实现逻辑与相关背景探讨(上)09-07收起 绪论本合集将详细讲述如何实现基于群只能遗传算法的五子棋AI,采用C++作为底层编程语言 本篇将简要讨论实现思路,并在后续的文中逐一展开了解五子棋 五子棋规则五子棋是一种经典的棋类游戏,规…

[nacos] Nacos 3 应用场景及高频问题(FAQ)

场景:指定NACOS注册中心中spring cloud微服务应用的IP spring:cloud:nacos:discovery:ip: 127.0.0.1修改完成、并重启服务之后在nacos查看的地址如下:场景:curl请求NACOS常用功能接口测试版本nacos-client : 2.0.3 nacos-server : 2.1.2推荐文献https://nacos.io/zh-cn/docs…

ios16.2版本以上mui的picker选择器显示异常的修复方案

问题描述 mui picker ios16.2系统及以上,选择器滚动错误错乱,显示异常但是可以正常选择用多个ios手机测试了,凡是升级到16.2及以上的均会产生这个的问题。使用官方的示例,放到升级到16.2的ios手机上测试,问题同样存在https://www.dcloud.io/hellomui/examples/picker.html…

解决升级到 Delphi 12 后遇到 SQLite 不兼容的问题

今天升级到 Delphi 12 后,编译运行原来的项目,出现“[FireDAC][Phys][SQLite][sqlite3]-303.Capability is not supported”的错误。经过查找文档,发现是FireDAC SQLite 版本更新导致的。RAD Studio 12.0 支持 SQLite 3.42,同时保留了使用 FireDAC 加密(FDE)的 SQLite 3.…

远程下载上传命令(绕过大小限制)

远程下载上传命令(绕过大小限制) python起http服务python3 -m http.server 5003python2 -m SimpleHTTPServer 5003 上传时遇到限制上传大小时: 编码base64:certutil -encode yb.exe 1.txt可以把1.txt拆成三个txt,分块上传后,再使用 copy c:\*txt c:\123.txt //把c盘根目…