决策树生成剪枝算法原理

news2024/11/24 15:03:42

决策树生成算法

首先明确信息熵 信息增益的概念

信息增益表示得知特征X信息是的类Y的信息不确定性减少的程度

H(D) 经验熵表示对数据D进行分类的不确定性

H(D|A)经验条件熵表示对特征A给定条件下对数据集D进行分类的不确定性(显然这个值越小越好 那么g(D,A)信息增益就会大)
信息增益比: g R ( D , A ) = g ( D , A ) H A ( D ) 信息增益: g ( D , A ) = H ( D ) − H ( D ∣ A ) 经验熵: H ( D ) = − ∑ k = 1 k ∣ C k ∣ ∣ D ∣ l o g 2 ∣ C k ∣ ∣ D ∣ ; K 个类;  ∣ C k ∣ 第 K 类样本数 经验条件熵: H ( D ∣ A ) = ∑ i = 1 n ∣ D i ∣ ∣ D ∣ H ( D i ) ; H A ( D ) = − ∑ i = 1 n ∣ D i ∣ ∣ D ∣ l o g 2 ∣ C i ∣ ∣ D ∣ , n 是特征 A 的取值个数 信息增益比:g_R(D,A)=\frac{g(D,A)}{H_A(D)}\\\\ 信息增益:g(D,A) = H(D)-H(D|A)\\\\ 经验熵:H(D) = -\sum_{k=1}^k \frac{|C_k|}{|D|}log_2\frac{|C_k|}{|D|}; K个类;\ |C_k|第K类样本数\\\\ 经验条件熵:H(D|A)=\sum_{i=1}^n\frac{|D_i|}{|D|}H(D_i); \\\\ H_A(D) = -\sum_{i=1}^n\frac{|D_i|}{|D|}log_2\frac{|C_i|}{|D|}, n是特征A的取值个数 信息增益比:gR(D,A)=HA(D)g(D,A)信息增益:g(D,A)=H(D)H(DA)经验熵:H(D)=k=1kDCklog2DCkK个类; CkK类样本数经验条件熵:H(DA)=i=1nDDiH(Di);HA(D)=i=1nDDilog2DCi,n是特征A的取值个数

ID3

核心:在决策树各节点应用信息计算信息增益准则选择特征,(即选择信息增益最大)递归地构建决策树 (相当于极大似然法进行概率模型选择)
在这里插入图片描述

C4.5

就是使用信息增益比选择特征

信息增益的劣势: 会偏向选择取值较多的特征, 增益比可以纠正

CART (分类回归树)

首先明确 是二叉树;决策树生成;决策树剪枝

回归树:平方误差最小化准则

分类树:Gini系数最小化

回归树生成

一棵回归树对应输入(特征)空间的一个划分以及在划分单元上的输出值,这样就可以定义一棵树

假设将特征空间划分为M个单元 R 1 , R 2 , . . . R M R_1,R_2,...R_M R1,R2,...RM每个单元都有一个输出值 c m c_m cm 那么回归时模型可表示:

f ( x ) = ∑ m = 1 M c m I ( x ∈ R m ) f(x) =\sum_{m=1}^Mc_mI(x\in R_m) f(x)=m=1McmI(xRm)
对特征空间的划分,启发式方法: 遍历每个特征的每个取值,划分两个空间,两个空间中每个样本均值和真实值平方误差最下 那么这个特征及相应的取值就是当前最佳切分点

在这里插入图片描述

分类树生成

在这里插入图片描述

同回归树相同的生成模式,只是划分空间的切分点衡量的方式是最小基尼系数

算法停止的条件可以设置叶子节点最小样本数作为阈值,或者基尼指数阈值或者没有更多特征

剪枝

CART剪枝算法是先生成再剪枝,从底向上

  1. 从生成算法产生的决策树 T 0 T_0 T0底部不断剪枝,直到根节点,形成一个子树序列 T 0 , T 1 , . . . , T n {T_0,T_1,...,T_n} T0,T1,...,Tn
  2. 交叉验证选择效果最优子树

怎么剪?

衡量标准除了平方误差或者基尼系数还要加上对树复杂度的衡量,所以损失函数设计:
C α ( T ) = C ( T ) + α ∣ T ∣ C_\alpha (T) = C(T)+\alpha |T| Cα(T)=C(T)+αT
C ( T ) C(T) C(T)为数据误差;|T|为子树叶节点个数

α \alpha α用来权衡调整拟合度和模型复杂度;显然当 α \alpha α较大的时候 最优子树 T α T_\alpha Tα较小即树复杂度较小

在这里插入图片描述

算法流程:

在这里插入图片描述

简单过一遍

参考:
李航:统计学习方法

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

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

相关文章

基于粒子群优化的中文文本分类

基本思路: 方法:使用优化算法(如粒子群)优化支持向量机SVM; 本文所使用的应用背景:中文文本分类(同时可以应用到其他背景领域,如) 应用背景(元启发式算法优…

(学习日记)2023.5.9

写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录&a…

QTableview常用几种代理总结

QTableview常用几种代理总结 [1] QTableview常用几种代理总结1、QCheckBox和QRadioButton的嵌入2、QHeadView中嵌入QCheckBox类3、QCombobox的嵌入4、 QCombox QCheckBox类5、SpinBox的嵌入类6、QProcess的嵌入类7、QProcess绘制版本的嵌入类8、QPushButton/QLabel/QImage的嵌…

鸿蒙Hi3861学习八-Huawei LiteOS-M(事件标记)

一、简介 事件是一种实现任务间通信的机制,可用于实现任务间的同步。但事件通信只能是事件类型的通信,无数据传输。一个任务可以等待多个事件的发生:可以是任意一个事件发生时唤醒任务进行事件处理;也可以是几个事件都发生后才唤醒…

mongodb副本集搭建

1.本次搭建使用三台centos7主机搭建集群,关闭防火墙和selinux服务 2.主机信息如下图所示 主机名称IPPortServiceA10.1.60.11427017mongodbB10.1.60.11527017mongodbC10.1.60.11827017mongodb 3.从官网下载mongodb安装包(我这里下载的是6.0.5版本的tgz包) Instal…

小家电LED显示驱动多功能语音芯片IC方案 WT2003H4 B002

随着时代的进步,智能家电的普及已经成为了一个趋势。而在智能家电中,LED显示屏也成为了不可或缺的一部分。因此,在小家电的设计中,LED显示驱动芯片的应用也越来越广泛。比如:电饭煲、电磁炉、数字时钟、咖啡机、电磁炉…

【Vue3】如何创建Vue3项目及组合式API

文章目录 前言 一、如何创建vue3项目? ①使用 vue-cli 创建 ②使用可视化ui创建 ③npm init vite-app ④npm init vuelatest 二、 API 风格 2.1 选项式 API (Options API) 2.2 组合式 API (Composition API) 总结 前言 例如:随着前端领域的不断发展&am…

【SSM框架】SpringMVC 中常见的注解和用法

SSM框架 SpringMVC 中常见的注解和用法基础注解介绍RequestMapping 注解介绍PostMapping 和 GetMapping 注解介绍 获取参数相关注解的介绍只通过 RequestMapping 来获取参数只传递一个参数传递对象参数传递多个参数(非对象) RequestParam 后端参数重命名required 必传参数的设置…

SpringBoot+Redis+自定义注解实现接口防刷(限制不同接口单位时间内最大请求次数)

场景 SpringBoot搭建的项目需要对开放的接口进行防刷限制,不同接口指定多少秒内可以请求指定次数。 比如下方限制接口一秒内最多请求一次。 注: 博客:霸道流氓气质的博客_CSDN博客-C#,架构之路,SpringBoot领域博主 实现 1、实现思路 首…

flink学习37:DataStream/DataSet与Table的互相转换

DataStream/DataSet转换成视图 DataStream/DataSet转换成表 表转换成DataStream/DataSet 表转换为DataStream/DataSet时,需要指定字段数据类型,最方便的就是把数据类型定为row,即行数据。 两种模式: 把表转为dataStream 把表转为d…

100ASK-V853-PRO编译烧写

100ASK_V853-PRO 环境配置及编译烧写 0.前言 本章主要介绍关于100ASK_V853-PRO开发板的Tina SDK包的下载和编译打包生成镜像,并将镜像烧录到100ASK_V853-PRO开发板上。在进行100ASK_V853-PRO开发板的环境配置前需要获取配置虚拟机系统,可以参考&#x…

【C语言督学训练营 第十二天】三篇文章吃透数据结构中的线性表(三)----- 线性表考研真题

文章目录 前言题目描述题目分析代码实战 前言 本篇博客从头到尾都在解析一道2019年考研真题中的一道关于链表的大题,虽然题目没有竞赛算法题那么复杂,那么难想,但是我们依旧可以从中收获到好多知识,本题的突破点就是快慢指针与链…

AP5153 线性降压恒流驱动芯片 2.5A

AP5153 是一种 PWM 调光的、低压 差的 LED 线性降压恒流驱动器。 AP5153 仅需要外接一个电阻和一个 NMOS 管就可以构成一个完整的 LED 恒 流驱动电路, 调节该外接电阻就可以调节 输出电流,输出电流可调范围为 20mA 到 3.0A。 AP5153 还可以通过在 DIM…

echarts x轴与y轴 刻度 数据设置

xAxis: {nameTextStyle: {fontWeight: "bold",fontSize: "20",align: "left",},splitLine: {show: false,},axisLine: {show: true,symbol: ["none", "arrow"], //加箭头处symbolOffset: 0,lineStyle: {color: "rgb(12…

aardio的优缺点,强烈推荐大家试用一下,可以用它在windows下面写一些小工具

概述 官网 aardio是一种用于Windows平台的脚本编程语言,以及一个功能丰富的集成开发环境(IDE)。它结合了强大的原生Windows API访问能力和简单易学的语法。以下是aardio的一些优缺点。 优点: 简单易学:aardio的语法简…

Linux | 本地Yum源 | 网络Yum源(阿里云Yum源)

💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! 本地Yum源配置 创建挂载点目录 [rootlocalhost ~]# mkdir /mnt/cdrom [rootlocalhost ~]# df /mnt/cdrom/ 文件系统 1K-块 已用 可用 已用%…

慎入坑:腾讯云轻量2核2G3M服务器30元不建议选择

腾讯云轻量应用服务器2核2G3M带宽30元3个月不建议买,自带3M带宽,下载速度可达384KB/秒,100%CPU性能,系统盘为40GB SSD盘,200GB月流量,折合每天6.6G流量,地域节点可选上海/广州/北京,…

React Router 6 函数式组件withRouter 路由属性配置

withRouter为解决开发过程中函数组件路由参数获取问题,之前版本的withRouter是直接可以导入使用的,现在的需要手写 这里使用了hooks,获取路由、参数等相关信息 需要在函数式组件内使用props,用法: 1.需要先使用高阶组…

K8s常见面试题20问

K8s常见面试题19问 收集了一些K8s常见问题和同学们面试常被问到的问题. 如果有新的面试题私聊或者留言给我 1. Docker和虚拟机有那些不同 虚拟化环境下每个 VM 是一台完整的计算机,在虚拟化硬件之上运行所有组件,包括其自己的操作系统。 容器之间可以共…

MySQL数据库备份并还原

使用Navicat和命令行备份并恢复数据库 第三方工具备份并恢复步骤1步骤2步骤3步骤4:步骤5 命令行方式备份并恢复:步骤1步骤2步骤3步骤4 第三方工具备份并恢复 步骤1 步骤2 在弹出的窗口上选择要备份的路径,单击保存,下图为备份完…