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

机器学习----决策树

一、决策树简介

from sklearn.tree import DecisionTreeClassifier

from sklearn.tree import plot_tree

        决策树是一种树形结构,树中每个内部节点表示一个特征上的判断,每个分支代表一个判断结果的输出,每个叶子节点代表一种分类结果。

决策树的建立过程(三要素):

1.特征选择:选择较强分类能力的特征;

2.决策树的生成:根据选择的特征生成决策树;

3.决策树的剪枝:决策树也容易过拟合,采用剪枝的方法缓解过拟合。

二、信息熵

“信息熵”:是信息论中的一个核心概念,它本质上是对不确定性或信息量的度量。

信息熵越大,信息的不确定性越大,信息的纯度越低,分类的效果越差;

信息熵越小,信息的不确定性越小,信息的纯度越高,分类的效果越好。

H\left ( x \right )=-\sum_{i=0}^{n}P\left ( x_{i} \right )log_{2}P\left ( x_{i} \right )

其中P\left ( x_{i} \right )表示数据中x_{i}类别出现的概率,H\left ( x \right )表示数据的信息熵,单位是比特。

三、ID3决策树

1.特征选择

信息增益:g(D,A)=H(D)-H(D|A),信息增益 = 熵 - 条件熵

条件熵:子集1占比*子集1的熵作为子集1的结果,然后对所有计算结果求和。

2.决策树的生成

①计算每个特征的信息增益

②使用信息增益最大的特征将数据集拆分为子集

③使用该特征(信息增益最大的特征)作为决策树的一个节点

④若该节点已成功分类(节点中只有一个类的样本)或该节点达到停止生长条件,则停止生长,否则使用剩余特征对子集重复上述(1,2,3)过程。
 

3.不足

基于信息增益计算的方式,会偏向于选择种类多的特征作为分裂依据。

四、C4.5决策树

1.特征选择

信息增益率:信息增益率=信息增益/特征熵。

特征熵(也称惩罚系数):-\sum_{i=0}^{n}(特征子集1的占比*log_{_{2}}(特征子集1的占比))

2.决策树的生成

类似ID3,只是调整为基于信息增益率进行特征选择,选择增益率大的特征作为分裂依据。

五、CART决策树

Cart模型是一种决策树模型,它即可以用于分类,也可以用于回归。

Cart回归树使用平方误差最小化策略,

Cart分类生成树采用的基尼指数最小化策略。

1.Cart分类树

        特征选择:基尼值:

                          基尼系数:

        决策树的生成:类似ID3,调整为基于基尼系数进行特征选择。

2.Cart回归树

特征选择:最小化回归树预测结果的平方误差。

决策树的生成:1.选择一个特征,将该特征的值进行排序,取相邻点计算均值作为待划分点
                         2.根据所有划分点,将数据集分成两部分:R1、R2
                         3.R1 和 R2 两部分的平方损失相加作为该切分点平方损失
                         4.取最小的平方损失的划分点,作为当前特征的划分点
                         5.以此计算其他特征的最优划分点、以及该划分点对应的损失值
                         6.在所有的特征的划分点中,选择出最小平方损失的划分点,作为当前树的分裂点

六、三种决策树的对比

1.ID3:分支方式(指标)是信息增益

        特点:①ID3只能对离散属性的数据集构成决策树

                   ②倾向于选择取值较多的属性

2.C4.5:分支方式(指标)是信息增益率

        特点:①缓解了ID3分支过程中总喜欢偏向选择值较多的属性

                   ②可处理连续数值型属性,也增加了对缺失值的处理方法

                   ③只适合于能够驻留于内存的数据集,大数据集无能为力

3.CART:分支方式(指标)是基尼指数

        特点:①可以进行分类和回归,可以处理离散属性,也可以处理连续属性

                   ②采用基尼指数,计算量减小

                   ③一定是二叉树

七、剪枝

概念:决策树剪枝(Pruning)是防止决策树过拟合、提高模型泛化能力的关键技术。

问题:当决策树生长得太深、分支太多时,它会过度拟合训练数据中的噪声和细节,导致在未知数据上表现很差。

方案:剪枝通过移除对整体预测贡献不大或可能导致过拟合的部分子树或节点来解决这个问题。

什么是决策树的剪枝:把子树的节点全部删掉,并将该节点作为叶子节点。

决策树剪枝方法:1.预剪枝:在树生长过程中提前停止分裂,比如提前限制树的最大深度(优点:计算效率高,训练快;缺点:可能过早停止,错过重要模式);

2.后剪枝:先让树完全生长,再自底向上修剪子树(优点:保留更多有效结构,泛化性能通常更好;缺点:计算开销大)。

http://www.lryc.cn/news/2395906.html

相关文章:

  • LabVIEW输血袋字符智能检测系统
  • 数据结构测试模拟题(3)
  • 理解频域滤波
  • Telerik生态整合:Kendo UI for Angular组件在WinForms应用中的深度嵌入(一)
  • 古老的传说(Player、Stage)是否还能在蓝桥云课ROS中重现-250601(失败)
  • InfluxQL 数据分析实战:聚合、过滤与关联查询全解析
  • Qt font + ToolTip + focusPolicy + styleSheet属性(5)
  • APM32主控键盘全功能开发实战教程:软件部分
  • docker 部署 gin
  • 十三: 神经网络的学习
  • Qt OpenGL编程常用类
  • 数据结构 --- 顺序表
  • MySQL高级查询技巧:分组、聚合、子查询与分页【MySQL系列】
  • 无人机多旋翼倾转动力测试系统-适用于(eVTOL开发、缩比模型测试、科研教育)
  • .NET8入门:14.ASP.NET Core MVC进阶——Model
  • latex figure Missing number, treated as zero. <to be read again>
  • java CompletableFuture创建异步任务(Completable异步+ExecutorService线程池)
  • LeetCode 高频 SQL 50 题(基础版)之 【聚合函数】部分
  • 【AI学习】检索增强生成(Retrieval Augmented Generation,RAG)
  • 低成本高效图像生成:GPUGeek和ComfyUI的强强联合
  • 基于Matlab实现卫星轨道模拟仿真
  • 前端使用 spark-md5 实现大文件切片上传
  • 《操作系统真相还原》——进入内核
  • 【QQ音乐】sign签名| data参数 | AES-GCM加密 | webpack(上)
  • 【STM32】按键控制LED 光敏传感器控制蜂鸣器
  • M-OFDM模糊函数原理及仿真
  • 【MySQL】MVCC与Read View
  • 相机--双目立体相机
  • 多目标粒子群优化算法(MOPSO),用于解决无人机三维路径规划问题,Matlab代码实现
  • 工厂模式 vs 策略模式:设计模式中的 “创建者” 与 “决策者”