当前位置: 首页 > backend >正文

机器学习基础 - 分类模型之决策树

决策树


文章目录

  • 决策树
    • 简介
    • 决策树三要素
    • 1. 特征的选择
      • 1. ID3
      • 2. C4.5
      • 3. CART
    • 2. 剪枝处理
      • 0. 剪枝的作用
      • 1. 预剪枝
      • 2. 后剪枝
    • QA
      • 1. ID3, C4.5, CART 这三种决策树的区别
      • 2. 树形结构为何不需要归一化?
      • 3. 分类决策树与回归决策树的区别
      • 4. 为何信息增益会偏向多取值特征?
      • 4. 为何信息增益会偏向多取值特征?

算法划分标准
ID3信息增益
C4.5信息增益率
CART基尼系数

简介

决策树是一个分而治之的递归过程。

  • 开始,构建根节点,将所有训练数据都放在根节点。
  • 然后,选择一个最优特征,按照这一特征将训练数据集分割成子集,使得各个子集有一个在当前条件下最好的分类。
  • 如果子集未分类完毕,则在子集中选择一个最优特征,继续进行划分,直到所有训练数据子集都被正确分类或没有合适的特征为止。

决策树三要素

  • 特征选择: 从训练数据中众多的特征中选择一个特征作为当前节点的分裂标准,如何选择特征有着很多不同量化评估标准标准,从而衍生出不同的决策树算法。
  • **决策树生成:**根据选择的特征评估标准,从上至下递归地生成子节点,直到数据集不可分则停止决策树停止生长。
  • **决策树的修剪:**决策树容易过拟合,一般来需要剪枝,缩小树结构规模、缓解过拟合。剪枝技术有预剪枝和后剪枝两种。

1. 特征的选择

有三种方法进行特征选择:ID3: 信息增益,C4.5: 信息增益比,CART: 基尼系数

1. ID3

思想: 计算所有特征划分数据集D,得到多个特征划分数据集D的信息增益,从这些信息增益中选择最大的,因而当前结点的划分特征便是使信息增益最大的划分所使用的特征。

1.对当前例子集合,计算各属性的信息增益;
2.选择信息增益最大的属性Ak;
3.把在Ak处取值相同的例子归于同一子集,Ak取几个值就得几个子集;
4.对既含正例又含反例的子集,递归调用建树算法;
5.若子集仅含正例或反例,对应分枝标上P或N,返回调用处。

信息增益: 度量以某特征划分数据集前后的信息熵的差值。 信息熵能够表示样本集合的不确定性,因此我们能够通过前后集合信息熵的差值来衡量使用当前特征对于样本集合D划分效果的好坏。

假设划分前样本集合D的熵为 H ( D ) H(D) H(D)。使用某个特征A划分数据集D,计算划分后的数据子集的熵为 H ( D ∣ A ) H(D|A) H(DA)
信息熵: H ( D ) = − ∑ k = 1 k ∣ C k ∣ ∣ D ∣ l o g 2 ∣ C k ∣ ∣ D ∣ 条件熵: H ( D ∣ A ) = ∑ i = 1 n ∣ D i ∣ ∣ D ∣ H ( D i ) 信息增益: g ( D , A ) = H ( D ) − H ( D ∣ A ) 信息熵:H(D) = - \sum_{k=1}^k \frac{|C_k|}{|D|} log_2 \frac{|C_k|}{|D|} \\ 条件熵: H(D|A) = \sum_{i=1}^n \frac{|D_i|}{|D|} H(D_i) \\ 信息增益: g(D,A)=H(D)-H(D|A) 信息熵:H(D)=k=1kDCk

http://www.xdnf.cn/news/1256.html

相关文章:

  • 深度学习--卷积神经网络数据增强
  • TP(张量并行)和EP(专家并行)的区别
  • C++学习之游戏服务器开发十二nginx和http
  • 从信息泄露到内网控制
  • STM32外部中断与外设中断区别
  • 数据结构——队列
  • 华为交换机命令笔记
  • 【springsecurity oauth2授权中心】将硬编码的参数提出来放到 application.yml 里 P3
  • C++23 中 static_assert 和 if constexpr 的窄化布尔转换
  • Agent智能体ReAct机制深度解读:推理与行动的完美闭环
  • 实战华为1:1方式1 to 2 VLAN映射
  • hbuilderx云打包生成的ipa文件如何上架
  • 发送百度地图的定位
  • 7.6 GitHub Sentinel后端API实战:FastAPI高效集成与性能优化全解析
  • OpenCV中的透视变换方法详解
  • 【AI模型学习】Swin Transformer——优雅的模型
  • 【含文档+PPT+源码】基于微信小程序的健康饮食食谱推荐平台的设计与实现
  • 【微知】git reset --soft --hard以及不加的区别?
  • 入住刚装修好的新房,房间隔音太差应该怎么办?
  • Unity 带碰撞的粒子效果
  • OpenVINO教程(三):使用NNCF进行模型量化加速
  • MATLAB Coder 应用:转换 MATLAB 代码至 C/C++ | 实践步骤与问题解决
  • 【Pandas】pandas DataFrame truediv
  • 【程序员 NLP 入门】词嵌入 - 上下文中的窗口大小是什么意思? (★小白必会版★)
  • RESTful API 设计原则
  • 深度学习基石:神经网络核心知识全解析(一)
  • Curl用法解析
  • 前端频繁调用后端接口问题思考
  • 2025年4月22日(平滑)
  • 【Python笔记 03 】运算符