一 概念

1 决策节点

通过条件判断而进行分支选择的节点。

将样本的属性值,也就是特征值与决策节点上的值进行比较,从而判断它的流向。

2 叶子节点

没有子节点的节点,表示最终的决策结果。

3 决策树的深度

所有节点的最大层次数

决策树具有一定的层次结构,根节点的层次数定为0,从下面开始每一层子节点层次数增加。

4 决策树优缺点

优点:可视化、可解释能力、对算力要求低;

缺点:容易产生过拟合,所以不要把深度调整太大;

二 基于信息增益决策树的建立

信息增益决策树倾向于选择取值较多的属性

有些情况下,这类属性可能不会提供太多有价值的信息,算法只能对描述属性为离散型属性的数据集构造决策树。

1 信息熵

信息熵描述的是不确定性。

信息熵越大,不确定性越大。信息熵的值越小,则样本集合D的纯度越高。

假设样本集合D共有N类,第K类样本所占比例为pk,则样本集合D的信息熵为:

2 信息增益

信息增益是一个统计量,用来描述一个属性区分数据样本的能力。

信息增益越大,那么决策树就会越简洁。

信息增益的程度用信息上的变化程度来衡量:IG(Y|X)=H(Y)-H(Y|X)≥0

3 信息增益决策树建立步骤

3.1 计算根节点的信息熵

上表把是否贷款分为2类样本:“是”占2/3,“否”占1/3;

3.2 计算属性的信息增益

3.2.1职业 属性的信息增益

IG(D,"职业“)
在职业中,工人占1/3,工人中,是否贷款各占1/2,所以:

在职业中,白领占2/3,  白领中,是贷款占3/4, 不贷款占1/4, 所以有

3.2.2 年龄 属性的信息增益

(以35岁为界)

3.2.3 收入 属性的信息增益

(以10000为界,大于等于10000为一类)

3.2.4 学历 属性的信息增益

(以高中为界, 大于等于高中的为一类)

注意: 

以上年龄使用35为界,收入使用10000为界,学历使用高中为界。

实计API使用中,会有一个参数"深度", 属性中具体以多少为界会被根据深度调整。

3.3 划分属性

对比属性信息增益发现,"收入"和"学历"相等,并且是最高的,所以我们就可以选择"学历"或"收入"作为第一个决策树的节点, 接下来我们继续重复3.1、3.2的做法继续寻找合适的属性节点。

三 基于基尼指数决策树的建立

基尼指数是指决策树算法中用于评估数据集纯度的一种度量,衡量的是数据集的不纯度,也可以说是分类的不确定性。

在构建决策树时,基尼指数被用来决定如何对数据集进行最优划分,以减少不纯度。

对于一个二分类问题,如果一个节点包含的样本属于正类的概率是 (p),则属于负类的概率是 (1-p)。

这个节点的基尼指数 (Gini(p)) 定义:

对于多分类问题,如果一个节点包含的样本属于第 k 类的概率是 p_k,则节点的基尼指数定义为:

3.1 基尼指数的意义

1、当一个节点的所有样本都属于同一类别,基尼指数为0,表示纯度最高。

2、当一个节点的样本均匀分布在所有类别时,基尼指数最大,表示纯度最低。

3.2 决策树中的应用

构建决策树的时候,希望每个内部节点的子节点能更纯,也就是基尼指数更小。

那么选择分割特征和分割点的目标是使子节点的平均基尼指数最小化。具体就是对一个特征,我们计算其所有的可能的分割点对应的子节点的加权平均基尼,选择最小化这个值的分割点。这个过程会在所有特征中重复,知道找到最佳的分割特征和分割点。

考虑一个数据集D,其中包含N个样本,特征A将数据集分割为|D1|和|D2|,则特征A的基尼指数为:Gini_A = \frac{|D_1|}{|D|} Gini(D_1) + \frac{|D_2|}{|D|} Gini(D_2),其中|D1|和|D2|分别是子集D1和D2的样本数量。

通过这样的方式,决策树算法逐步构建一棵树,每层的节点都尽可能减少基尼指数,最终达到对数据集的有效分类。

四 API

class sklearn.tree.DecisionTreeClassifier(....)

参数:

criterion "gini" "entropy” 默认为="gini" 
当criterion取值为"gini"时采用 基尼不纯度(Gini impurity)算法构造决策树,
当criterion取值为"entropy”时采用信息增益( information gain)算法构造决策树.
max_depth    int, 默认为=None  树的最大深度

# 可视化决策树

function sklearn.tree.export_graphviz(estimator, out_file="iris_tree.dot", feature_names=iris.feature_names)

参数:

estimator决策树预估器
out_file生成的文档
feature_names节点特征属性名


功能:
把生成的文档打开,复制出内容粘贴到"http://webgraphviz.com/"中,点击"generate Graph"会生成一个树型的决策树图

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

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

相关文章

IT 服务管理的新格局:从工单系统到一体化 ITSM 平台

企业 IT 部门的角色转变在过去,IT 部门更多被视为“技术支持”,主要负责设备维护和故障处理。但随着数字化转型加速,IT 已经成为业务连续性和创新的重要推动力。从客户体验到数据安全,从业务敏捷到成本控制,IT 服务管理…

创建一个Spring Boot Starter风格的Basic认证SDK

文章目录前言设计思路SDK实现步骤1. 创建SDK Maven项目(sdk目录)2. 实现配置类3. 实现认证逻辑4. 实现拦截器5. 实现自动配置6. 创建spring.factories文件使用方集成步骤1. 引入SDK依赖2. 配置Application属性3. 创建测试接口4. 测试接口访问SDK扩展功能…

mybatis处理统计sql进度丢失问题

如何处理统计sql进度丢失 SELECT sum(decimal_column) AS sum_value FROM your_table如上sql执行时没有问题,在数据库可视工具可以正常显示,但是在mybatis执行时,却出现解决办法 使用转 decimal 控制精度 SELECT CAST(SUM(decimal_column) A…

全球首款!科聪控制器获德国 TÜV 莱茵功能安全认证

近日,浙江科聪控制技术有限公司(以下简称"科聪")的安全移动机器人控制器MSC5000荣获全球权威认证机构德国莱茵TV集团(TV Rheinland)颁发的功能安全认证证书。这款控制器是全球首款通过SIL3、PLe 认证的移动机…

pureadmin的动态路由和静态路由

在 PureAdmin(基于 Vue3 的后台管理框架)中,静态路由和动态路由是实现路由管理的两种方式,主要区别在于路由的定义时机、加载方式和灵活性,具体区别如下: 1. 静态路由 定义方式:路由规则在代码中…

第3章:CPU实战

1. Linux操作系统CPU平均负载 以前我们总认为CPU使用率和CPU平均负载是一样的,负载高了就是CPU使用率提高。但是到底是什么情况呢? 1.1. CPU的平均负载 单位时间内 系统处于 可运行状态 和不可中断状态 的平均进程数,就是平均活跃进程数&a…

【Vue3】06-利用setup编写vue(1)

其它篇章: 1.【Vue3】01-创建Vue3工程 2.【Vue3】02-Vue3工程目录分析 3.【Vue3】03-编写app组件——src 4.【Vue3】04-编写vue实现一个简单效果 5.【Vue3】05-Options API和Composition API的区别 6.【Vue3】06-利用setup编写vue(1) 7.【Vue…

UDS NRC速查

目录 NRC 一、通用NRC(0x10~0x5F) 二、数据相关NRC(0x70~0x8F) 三、会话与状态NRC 注意事项 UDS中的NRC(Negative Response Code)即否定响应码,用于在诊断通信中表示服务端无法成功执行客户端请求的原因。以下是一些常用的UDS NRC码及其含义: HEX Name Description 01 …

【AI论文】多模态大型语言模型的视觉表征对齐

摘要:通过视觉指令微调训练的多模态大型语言模型(MLLMs)在各类任务中均取得了优异表现,然而在以视觉为中心的任务(如物体计数或空间推理)中,其性能仍存在局限。我们将这一差距归因于当前主流的纯…

SKywalking Agent配置+Oracle监控插件安装指南

SKywalking Agent配置Oracle监控插件安装指南前言: SkyWalking Elasticsearch8 容器化部署指南 Skywalking版本:V10.2.0 Skywalking Agent版本:V9.4.0 Skywalking Agent下载地址:Downloads | Apache SkyWalking 插件下载地址&…

ES相关问题汇总

问题一:关于【QueryBuilder对象】和【Query String语法】查询时底层运行方式和结果的差异

5. STM32 时钟系统分配

文章目录下述将以stm32f407 为例1. 时钟系统及频率分析2. 时钟配置下述将以stm32f407 为例 1. 时钟系统及频率分析 上述STM32F4时钟系统图解析入下: STM32F407 系列微控制器(基于 Cortex-M4 内核,带 FPU)的工作频率配置如下&…

《从 0 建立测试开发认知:先搞懂 “是什么”,再学 “怎么做”》

🔥个人主页:草莓熊Lotso 🎬作者简介:C研发方向学习者 📖个人专栏: 《C知识分享》《Linux 入门到实践:零基础也能懂》《数据结构与算法》《测试开发实战指南》《算法题闯关指南》 ⭐️人生格言&a…

net::ERR_EMPTY_RESPONSE

net::ERR_EMPTY_RESPONSE表现解决表现 Java后端封装一个接口,透传前端参数,请求到其他模块服务 本地开发环境联调时是没有问题,测试环境上报错 1.前端报错,F12检查,network上的请求,返回response选项中为空…

在线多功能环境音生成器

https://oltool.cc/toolbox/huanjingyins.html 关于环境音生成器介绍: 1、本工具可以混合各种声音,比如下雨声,打雷声,海浪声,鸟叫以及虫鸣声等,生成新的环境声。 2、定时器:可以设置倒计时&…

本地电脑映射端口到外网访问的开启方法和注意事项,内网服务提供跨网使用简单操作实现

在计算机网络中,端口映射是一项重要的技术,它允许外网用户访问局域网内的特定设备或服务。当我们在本地电脑搭建部署项目应用后,就可以通过映射端口的方式,简单快速稳定的提供互联网访问服务。以下将详细介绍如何开启电脑映射端口…

Java 大视界 -- Java 大数据在智能医疗健康档案数据分析与个性化健康管理中的应用(410)

Java 大视界 -- Java 大数据在智能医疗健康档案数据分析与个性化健康管理中的应用(410)引言:正文:一、2023 年 6 月智能医疗健康档案的核心落地需求(政策 业务双驱动)1.1 政策倒逼的数据应用痛点&#xff…

微服务架构的基石:Nacos全方位解析与Java实战指南

引言在云原生与微服务浪潮席卷而来的今天,服务的治理与配置的管理变得前所未有的复杂。一个个单一的应用被拆分为数十甚至上百个微服务,如何让这些服务轻松地发现彼此?如何在不重启应用的情况下动态调整所有服务的参数?这些问题直…

IDA pro 生成idapro.hexlic

先安装IDA pro,安装好后,把根目录中的 ida32.dll和ida.dll赋值到python文件脚本同目录中,如图。 直接运行py import json import hashlib import os from datetime import datetime, timedelta import platform import winregname input(&…

【ARMv7-M】复位向量与启动过程

关于ARMv7上电复位后,通过复位向量初始化堆栈位置、PC指针,然后跳转到汇编入口,开始执行系统初始化等等操作,熟悉了解这个过程,对于嵌入式系统软件开发来说至关重要。不同的SOC在BootROM与Flash的地址分配上&#xff0…