统计学习模型——决策树

article/2025/11/5 7:37:58
  • 决策树学习的三个步骤:特征选择、决策树的生成和决策树的修剪

一、决策树模型(分类与回归方法)

1.1 基本概念

  • 决策树可为多叉树,是描述对实例进行分类的树形结构
  • 决策树由结点和有向边组成。其中结点又分为:内部结点(表示特征或属性)叶结点(表示类别)
  • 决策树采用 i f − t h e n if-then ifthen规则(集合互斥且完备),一个实例仅有一条路径;叶结点,即类别可有多条路径

1.2 决策树的学习

  • 学习过程:决策树通过给定特征条件下类的条件概率分布 P ( X ∣ Y ) P(X|Y) P(XY),对特征空间进行一个划分,且划分得到的各个单元互不相交
  • 假设空间:由无穷多个条件概率模型组成
  • 学习策略:以损失函数为目标函数的最小化,其中损失函数通常是正则化的极大似然函数
  • 学习算法:递归地选择最优特征,并根据该特征对训练数据进行分割,使得对各个子数据集有一个最好的分类过程
    • 决策树的生成(考虑局部最优):对特征空间的划分,直至所有训练子集被基本正确分类
    • 决策树的剪枝(考虑全局最优):避免过拟合,具有更好的泛化能力
  • 一棵好的决策树:在保证训练误差较小的情况下,具有良好的泛化能力。因此在决策树生成后,需对其进行剪枝处理,以提高泛化能力

二、特征选择

  • 特征选择的准则:信息增益、信息增益比

2.1 熵与条件熵

  • :随机变量不确定性的度量。设 X X X是一个取有限个值的离散随机变量,其概率分布为 P ( X = x i ) = p i , i = 1 , 2 , ⋯ , n P(X=x_i)=p_i,i=1,2,\cdots,n P(X=xi)=pii=1,2,,n则随机变量 X X X的熵定义为 H ( X ) = − ∑ i = 1 n p i log ⁡ p i H(X)=-\sum_{i=1}^np_i\log p_i H(X)=i=1npilogpi也可记作 H ( p ) H(p) H(p)
    • 熵越大,随机变量的不确定性就越大。随机变量取等概率分布时,相应的熵最大
  • 条件熵:在已知随机变量 X X X的条件下随机变量 Y Y Y的不确定性,定义为 X X X给定条件下 Y Y Y的条件概率分布的熵对 X X X的数学期望 H ( Y ∣ X ) = ∑ i = 1 n p i H ( Y ∣ X = x ) H(Y|X)=\sum_{i=1}^np_iH(Y|X=x) H(YX)=i=1npiH(YX=x)其中 p i = P ( X = x i ) , i = 1 , 2 , ⋯ , n p_i=P(X=x_i),i=1,2,\cdots,n pi=P(X=xi)i=1,2,,n
  • 若是由数据估计得到的熵与条件熵,分别称为经验熵与经验条件熵

2.2 信息增益

  • 信息增益:特征 A A A对训练数据集 D D D的信息增益 g ( D , A ) g(D,A) g(D,A)定义为 g ( D , A ) = H ( D ) − H ( D ∣ A ) g(D,A)=H(D)-H(D|A) g(D,A)=H(D)H(DA)
  • 互信息:熵 H ( Y ) H(Y) H(Y)与条件熵 H ( Y ∣ X ) H(Y|X) H(YX)之差。决策树学习中的信息增益等价于训练数据集中类与特征的互信息
  • 信息增益准则:对训练数据集(或子集) D D D,计算其每个特征的信息增益,并比较它们的大小,选择信息增益最大的特征
  • 信息增益大的特征具有更强的分类能力
  • 信息增益的算法
    • 输入:训练数据集 D D D和特征 A A A
    • 输出:特征 A A A对训练数据集 D D D的信息增益 g ( D , A ) g(D,A) g(D,A)
      在这里插入图片描述
      在这里插入图片描述
  • :当特征取值为 a i a_i ai时,所对应的数据集确定为 D i D_i Di,故 P ( D ∣ A = a i ) = P ( D i ) P(D|A=a_i)=P(D_i) P(DA=ai)=P(Di)

2.3 信息增益比

  • 信息增益比:特征 A A A对训练数据集 D D D的信息增益比 g R ( D , A ) g_R(D,A) gR(D,A)定义为 g R ( D , A ) = g ( D , A ) H ( D ) g_R(D,A)=\frac{g(D,A)}{H(D)} gR(D,A)=H(D)g(D,A)

三、决策树的生成

3.1 ID3算法

  • 选择信息增益最大的特征作为结点的特征
  • 经验熵大的时候,信息增益值会偏大
    在这里插入图片描述
    在这里插入图片描述

3.2 C4.5算法

  • 选择信息增益比最大的特征作为结点的特征
    在这里插入图片描述
  • 处理离散或连续随机变量,但不适用于样本量过大的数据

四、决策树的剪枝

  • 优秀的决策树有三种:深度小叶结点少深度小且叶结点少

4.1 预剪枝

  • 在决策树的生成过程中,若当前结点的划分不能提高其泛化能力,则停止划分,并将其记为叶结点
  • 判断是否进行剪枝处理?基于测试集的误差率是否降低,即错误分类的实例占比。(随着误差率下降,泛化能力提高)

4.2 后剪枝

  • 在生成一棵完整额决策树后,自下而上地对内部结点进行考察,若内部结点变为叶结点,可提升泛化能力,则做此替换
    • 悲观错误剪枝:基于训练集,自上而下进行。计算剪枝前误判上限与剪枝后误判个数的期望值
      在这里插入图片描述
    • 最小误差剪枝:基于训练集,自下而上进行。计算剪枝前后的最小分类错误概率,从而决定是否剪枝
      在这里插入图片描述
    • 基于错误剪枝:基于训练集,计算剪枝前后的误判个数,从而决定是否剪枝
      在这里插入图片描述
    • 代价-复杂度剪枝:根据剪枝前后的损失函数大小(包括代价和复杂度)
      • CART算法中进行决策树剪枝时,使用该方法进行判断

五、CART算法

5.1 回归树

假设 X X X Y Y Y分别为输入和输出变量,并且 Y Y Y是连续变量,给定训练数据集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯ , ( x N , y N ) } D=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\} D={(x1,y1),(x2,y2),,(xN,yN)}一个回归树对应着输入空间的一个划分以及在划分的单元上的输出值。假设已将输入空间划分为 M M M个单元 R 1 , R 2 , ⋯ , R M R_1,R_2,\cdots,R_M R1,R2,,RM,并且在每个单元 R m R_m 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)当输入空间的划分确定时,可以用平方误差 ∑ x i ∈ R m ( y i − f ( x i ) ) 2 \sum_{x_i\in R_m}(y_i-f(x_i))^2 xiRm(yif(xi))2来表示回归树基于训练数据集的预测误差,用平方误差最小的准则求解每个单元上的最优输出值。易知,单元 R m R_m Rm上的 c m c_m cm的最优值 c ^ m \hat c_m c^m R m R_m Rm上的所有输入实例 x i x_i xi对应得输出 y i y_i yi的均值,即 c ^ m = a v e ( y i ∣ x i ∈ R m ) \hat c_m=ave(y_i|x_i\in R_m) c^m=ave(yixiRm)

  • 如何寻找最优切分点?基于平方误差最小化原则
    • 对于 j j j个变量 x ( j ) x^{(j)} x(j),比较每个切分点 s 1 , s 2 , ⋯ s_1,s_2,\cdots s1,s2,的平方误差值,选取最小的,其对应的 s i s_i si即为最优切分点
  • 如何寻找最优切分变量?基于平方误差最小化原则
    • 找每个变量的最优切分点,比较每个最优切分点的平方误差值,选取最小的,对应的 x ( j ) x^{(j)} x(j)即为最优切分变量
      在这里插入图片描述

5.2 分类树

  • 假设决策树为二叉树
  • 特征选择:基于基尼指数最小化原则
    • 假设有 K K K个类,样本点属于第 k k k类的概率为 p k p_k pk,则概率分布的基尼指数定义为 G i n i ( p ) = ∑ k = 1 K p k ( 1 − p k ) = 1 − ∑ k = 1 K p k 2 Gini(p)=\sum_{k=1}^Kp_k(1-p_k)=1-\sum_{k=1}^Kp_k^2 Gini(p)=k=1Kpk(1pk)=1k=1Kpk2
    • 对于二分类问题,假设样本点属于第1个类的概率为 p p p,则概率分布的基尼指数为 G i n i ( p ) = 2 p ( 1 − p ) Gini(p)=2p(1-p) Gini(p)=2p(1p)
    • 对于给定的样本集合 D D D,其基尼指数为 G i n i ( D ) = 1 − ∑ k = 1 K ( ∣ C k ∣ ∣ D ∣ ) 2 Gini(D)=1-\sum_{k=1}^K(\frac{|C_k|}{|D|})^2 Gini(D)=1k=1K(DCk)2这里, C k C_k Ck D D D中属于第 k k k类的样本子集, K K K是类的个数
    • 在给定特征 A A A的条件下,集合 D D D的基尼指数定义为 G i n i ( D , A ) = ∣ D 1 ∣ ∣ D ∣ G i n i ( D 1 ) + ∣ D 2 ∣ ∣ D ∣ G i n i ( D 2 ) Gini(D,A)=\frac{|D_1|}{|D|}Gini(D_1) +\frac{|D_2|}{|D|}Gini(D_2) Gini(D,A)=DD1Gini(D1)+DD2Gini(D2)基尼指数值越大,样本集合的不确定性也就越大
      在这里插入图片描述
      在这里插入图片描述
      参考:《统计学习方法》李航著;B站UP主简博士《统计学习方法》视频 (关于决策树剪枝部分)

http://chatgpt.dhexx.cn/article/d6oMgYBb.shtml

相关文章

机器学习的概率统计模型(附代码)(一)

目录 概率论 1.1 离散随机变量分布 1)伯努利分布 2)二项分布 3)泊松分布 1.2 连续随机变量分布 1)均匀分布 2)指数分布 3)正态分布 总结 系列文章目录 概率论 概率论,是研究随机现象数量规…

【统计模型】缺失数据处理方法

目录 一、缺失数据定义 二、缺失数据原因 三、缺失数据处理步骤 四、数据缺失机制 1.完全随机缺失(MCAR) 2.随机缺失(MAR) 3.非随机、不可忽略缺失(NMAR) 五、缺失数据处理方法 1.直接删除 2.缺失值…

数学统计建模

数据预处理 数据清洗 无量纲处理 检验数据来自哪个分布 正态分布检验 K-S检验的P值检验正态性 非正态数据处理 数据偏态处理 BOX-COX变换 成分数据处理 clr变换 ilr变换 logit变换 属性数据 相关性检验 假设检验方法使用时应首先判断数据是否为正态数据。如果是&#x…

【数学建模】统计分析方法

文章目录 1.回归分析2. 逻辑回归3. 聚类分析4. 判别分析5. 主成分分析6. 因子分析7. 对应分析 1.回归分析 数据量要多,样本总量n越大越好——>保证拟合效果更好,预测效果越好 一般n>40/45较好 方法 建立回归模型 yiβ0β1i……βkxkiεi 所估计的…

统计模型分类

传统统计模型->回归模型(可解决过去和预测未来) 数据挖掘模型->决策树、神经网络等(只能预测未来) 横截面模型:多元回归,逻辑回归,托宾回归(涉及到泊松分布) 向量…

(R语言)R的统计模型

1定义统计模型的公式 下面统计模型的模板是一个基于独立的方差齐性数据的线性模型 用矩阵术语表示,它可以写成 其中y是响应向量,X是模型矩阵(model matrix)或者设计矩阵(design ma- trix)。X的列 是决定变…

【统计学习方法】模型评估与模型选择

一、训练误差与测试误差 首先引入误差的概念,误差(error)是指:学习器的实际预测输出与样本的真实输出之间的差异。类似地,学习器在训练集上的误差被称之为训练误差(training error)或者经验误差…

statsmodels︱python常规统计模型库

之前看sklearn线性模型没有R方,F检验,回归系数T检验等指标,于是看到了statsmodels这个库,看着该库输出的结果真是够怀念的。。 文章目录 1 安装2 相关模型介绍2.1 线性模型2.2 离散选择模型(Discrete Choice Model, DCM)2.3 非参数…

数学建模——统计回归模型

前言:看完数学建模的统计回归模型,更是感到了数学建模的“细腻”之处,对比与机器学习,如果说机器学习像是“打一场仗”,那数学建模更是像“做一场手术”,一个简单的回归问题也可以从中感觉到他“细腻”的美…

统计模型 | 学习笔记

一.概述 任何统计模型都是对现实世界复杂联系的简化 根据目的分类 聚类方法(细分类模型):市场细分,协同推荐 预测方法:回归模型,时间序列模型 关联归纳方法:购物篮分析,序列分析…

七大统计模型

一、多元回归 1、概述: 在研究变量之间的相互影响关系模型时候,用到这类方法,具体地说:其可以定量地描述某一现象和某些因素之间的函数关系,将各变量的已知值带入回归方程可以求出因变量的估计值,从而可…

03 常用统计模型简述

逻辑回归模型(LR) 原理:分类模型,依据逻辑斯蒂分布,将线性模型转化为逻辑回归模型,使结果分布0~1之间。 前置条件: 自变量为连续变量,分类变量转为虚拟变量(哑变量)使用 自变量与因…

不可不知的七大统计模型

一、多元回归 1、概述: 在研究变量之间的相互影响关系模型时候,用到这类方法,具体地说:其可以定量地描述某一现象和某些因素之间的函数关系,将各变量的已知值带入回归方程可以求出因变量的估计值,从而可…

数学建模笔记(十一):统计模型(MATLAB计算,函数参数解释待补充)

文章目录 一、概述二、参数估计——区间估计1.糖果称重(求总体均值 μ \mu μ的双侧置信区间)(一)根据公式计算结果(二)直接使用 t t e s t ( ) ttest() ttest()函数 2.灯泡寿命( μ \mu μ的单…

scss和sass的区别,scss的基本使用

scss的官方文档 https://www.sass.hk/ sass和scss有什么关系? 1、sass和scss其实是一样的css预处理语言,SCSS 是 Sass 3 引入新的语法,其后缀名是分别为 .sass和.scss两种。 2、SASS版本3.0之前的后缀名为.sass,而版本3.0之后…

vue 安装 scss

安装scss (安装sass-loader node-sass 前者依赖于后者) sass-loader:把 sass编译成css node-sass:nodejs环境中将sass转css npm install sass-loader --save-dev npm install node-sass --sava-dev 安装指定版本:当由于版本过高报错时&#…

scss、sass 和 css 的区别

项目中,会经常使用诸如scss、sass的style样式,它们和css有什么区别呢? less大家应该都不陌生,同样的scss、sass一样,它们都可以称为:CSS预处理器语言。 简单来说,scss和sass的区别,就…

Scss 基本使用(变量、嵌套)

1. Scss 简介 Sass (Syntactically Awesome Stylesheets) 是一种动态样式语言,Sass 语法属于缩排语法,比 css 比多出好些功能 (如:变量、嵌套、运算,混入(Mixin)、继承、颜色处理,函数等),更容易阅读。 Sass 的缩排语…

sass与scss的区别

用了很久css预编译器,但是一直不太清楚到底用的sass还是scss,直到有天被问住了有点尴尬,找了个教程撸了遍。。。 异同:简言之可以理解scss是sass的一个升级版本,完全兼容sass之前的功能,又有了些新增能力。…

SCSS的基本用法-入门篇

文章目录 前言一、什么是Sass二、SASS 和 SCSS 的区别三、Scss的基本语法1、声明变量 $2、默认变量 !default3、变量调用4、局部变量和全局变量5、嵌套5.1、选择器嵌套5.2、属性嵌套5.3、伪类嵌套 6、混合宏6.1、声明6.1.1、不带参数混合宏6.1.2、带参数混合宏 6.2、调用6.3、混…