首页 > 其他分享 >决策树模型(3)决策树的生成与剪枝

决策树模型(3)决策树的生成与剪枝

时间:2024-03-28 10:45:02浏览次数:21  
标签:剪枝 结点 模型 增益 类别 alpha 决策树

决策树的生成

有了信息增益和信息增益比,我就可以以此衡量特征的相对好坏,进而可以用于决策树的生成。相对应的基于信息增益计算的方法所生成的决策树的算法我们叫做ID3算法,而基于信息增益的算法我们叫做C4.5,二者唯一的区别就在于一个使用信息增益衡量特征好坏而另外一个使用信息增益比,因此本文重点讲述ID3算法。

ID3算法

  1. 特殊情况判断
    • 如果数据集中所有的样本均属于同一类\(C_k\),那么直接将\(C_k\)作为该结点的类别标记,并返回决策树\(T\)。
    • 如果此时特征集合\(A=\varnothing\)为空,那么将\(D\)中相同类别数最多样本的类别作为该结点的类别标记并返回\(T\)。
  2. 若没有出现上述特殊情况,则计算\(A\)中各特征的信息增益\(g(D, A_i)\),并选择信息增益最大的特征\(A_g\)。
  3. 若\(A_g\)的信息增益小于阈值\(\epsilon\),那么同样的,将\(D\)中相同类别数最多的样本的类别作为该结点的类别标记并返回\(T\)。
  4. 否则使用\(A_g=a_i\)再次将训练集分割为若干非空子集\(D_i\),其中\(a_i\)是特征\(A_g\)的每个可能取值,然后对每一个\(D_i\)以其实例数最大的类作为标记构建子节点。
  5. 对第\(i\)个子结点以\(D_i\)为训练集,特征集合\(A=A - {A_g}\)为特征集,递归调用\((1)-(5)\)。

下面是更形象化的图示:

决策树的剪枝

为了减少决策树的复杂度,并降低过拟合,对决策树进行剪枝是十分有必要的。

代价复杂度剪枝

设决策树\(T\)的叶子结点个数为\(|T|\),叶子结点表示为\(t\),\(N_t\)表示\(t\)上的所有样本点,\(N_{tk}\)表示第\(k\)类的样本点,\(H_t(T)\)表示叶子节点\(t\)上的经验熵(损失)。

\[H_t(T) = -\sum_{k=1}^K\frac{N_{tk}}{|N_{t}|}\mathrm{log}\frac{N_{tk}}{|N_{t}|} \]

那么决策树的损失函数可以定义为

\[C_\alpha(T)=\sum_{t=1}^{|T|}\frac{|N_t|}{|N|}H_t(T)+\alpha |T| \]

前一项表示模型对训练数据的预测误差。

算法

对每个叶子节点的父节点进行剪枝,设剪枝前树的损失为\(T_\alpha(T_A)\),为剪枝的为\(T_\alpha(T_B)\),若满足

\[T_\alpha(T_A) <= T_\alpha(T_B) \]

则表明需要进行剪枝,此过程持续进行,直到无法再继续剪枝。

标签:剪枝,结点,模型,增益,类别,alpha,决策树
From: https://www.cnblogs.com/hywang1211/p/18100709

相关文章

  • 【论文速读】| 对大语言模型解决攻击性安全挑战的实证评估
    本次分享论文为:AnEmpiricalEvaluationofLLMsforSolvingOffensiveSecurityChallenges基本信息原文作者:MinghaoShao,BoyuanChen,SofijaJancheska,BrendanDolan-Gavitt,SiddharthGarg,RameshKarri,MuhammadShafique作者单位:纽约大学、纽约大学阿布扎比......
  • 【计算机网络】应用层——应用层概念&网络应用模型
    应用层概述应用层对应用程序的通信提供服务。应用层协议定义:应用进程交换的报文类型,请求还是响应?各种报文类型的语法,如报文中的各个字段及其详细描述。字段的语义,即包含在字段中的信息的含义。进程何时、如何发送报文,以及对报文进行响应的规则。应用层的功能......
  • jvm内存模型
    1栈局部变量表存放局部变量局部变量表中的对象是指向堆中对象的地址操作数栈方法内的数据计算程序计数器程序一行代码运行后存放下一行代码的地址本地方法栈方法用native修饰动态链接符号引用转化为直接引用直接引用为方法区的具体地址方法出口2堆新生代伊甸......
  • 【Flutter 面试题】 Dart 是不是单线程模型?是如何运行的?
    【Flutter面试题】Dart是不是单线程模型?是如何运行的?文章目录写在前面口述回答补充说明示例:异步编程示例:使用Isolates处理计算密集型任务总结写在前面......
  • 高斯混合模型(GMM)和EM算法 —— python实现
    一、EM算法EM算法是一种迭代算法,用于含有隐含变量的概率模型参数的极大似然估计。设Y为观测随机变量的数据,Z为隐藏的随机变量数据,Y和Z一起称为完全数据。观测数据的似然函数为:模型参数θ的极大似然估计为:这个问题只有通过迭代求解,下面给出EM算法的迭代求解过程:step1、选择......
  • R语言贝叶斯INLA空间自相关、混合效应、季节空间模型、SPDE、时空分析野生动物数据可
    全文链接:https://tecdat.cn/?p=35518原文出处:拓端数据部落公众号在统计建模过程中,经常会遇到空间自相关性的问题。空间自相关性是指相近位置的观测值往往比远离位置的观测值更相似。在尝试估计参数或进行预测时,空间自相关性可能会导致结果产生偏差。INLA(IntegratedNestedLapla......
  • JVM(六)——内存模型与高效并发
    内存模型与高效并发一、java内存模型【java内存模型】是JavaMemoryModel(JMM)简单的说,JMM定义了一套在多线程读写共享数据时(成员变量、数组)时,对数据的可见性、有序性、和原子性的规则和保障1)原子性原子性在学习线程时讲过,下面来个例子简单回顾一下:问题提出,两个线......
  • I/O模型之A、B、C、D、E、F、G去火锅店吃火锅
    目录BIOBlockingI/O即同步阻塞I/ONIONon-BlockingI/O即同步非阻塞I/OI/O多路复用AIOAsynchronousI/O异步I/O总结I/O:Input和OutputBIOBlockingI/O即同步阻塞I/O应用程序发起read调用后,一直会阻塞,直到系统内核将数据拷贝给应用程序。缺点:一直阻塞,不能应......
  • 聊聊大模型"打字机"效果的背后技术——SSE
    SSE:ServerSentEvent;服务器发送事件。Server-SentEvents(SSE)是一种由服务器向客户端推送实时数据的技术。它是构建基于事件的、服务器到客户端的通信的一种方法,特别适用于需要实时更新和推送信息的应用场景,如实时通知、股票交易、实时游戏状态更新等。SSE的工作原理是,一旦客户......
  • R:PLS-DA模型
    #清除所有变量rm(list=ls())#设置工作目录setwd("C:\\Users\\Administrator\\Desktop\\新建文件夹\\PLS_Pathway")#1.加载所需的库library(vegan)library(tidyverse)library(ggpubr)library(patchwork)library(ggforce)library(mixOmics)library(patchwork)......