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

数据挖掘——集成学习

数据挖掘——集成学习

  • 集成学习
    • Bagging:有放回采样
      • 随机森林
    • Boosting
    • Stacking

集成学习

集成学习(Ensemble learning)方法通过组合多种学习算法来获得比单独使用任何一种算法更好的预测性能。

动机是为了提高但分类器的性能
在这里插入图片描述

Bagging:有放回采样

Bagging算法,也称作Bootstrap Aggregating,是一种集成学习的方法。它通过从原始数据集中随机抽取多个有放回的样本集,然后基于这些样本集训练多个独立的学习器,最后将这些学习器的输出进行组合以得到最终的预测结果。

具体的步骤如下:

  1. 从原始训练集中随机抽取多个有放回的样本集,每个样本集的大小与原始训练集相同。
  2. 使用每个样本集训练一个独立的学习器,可以使用任何分类或回归算法。
  3. 对于分类问题,将每个学习器的输出进行投票,选择得票最多的类别作为最终的预测结果。
    对于回归问题,将每个学习器的输出进行平均,作为最终的预测结果。
  4. 最终的预测结果即为集成学习器的输出。

Bagging算法通过在训练过程中引入随机性,可以减小过拟合的风险,提高模型的稳定性和泛化能力。它适用于大部分机器学习算法,并且可以并行地训练多个学习器,提高模型训练的效率。
在这里插入图片描述

随机森林

基本思想:随机森林就是通过集成学习的思想将多棵树集成的一种算法,它的基本单元是决策树(如CART)。
随机森林的名称中有两个关键词,一个是“随机”,一个就是“森林”。

  • “森林”很好理解,一棵叫做树,那么成百上千棵就可以叫做森林了,其实这也是随机森林的主要思想–集成思想的体现。
  • “随机”的包括随机选取训练样本集和随机选取分裂属性集。

优点:

  • 两个随机性的引入,使得随机森林不容易陷入过拟合
  • 两个随机性的引入,使得随机森林具有很好的抗噪声能力
  • 对数据集的适应能力强:既能处理离散型数据,也能处理连续型数据,数据集无需规范化且能够有效地运行在大数据集上
  • 能够处理具有高维特征的输入样本,而且不需要降维
  • 对于缺省值问题也能够获得很好得结果。

下面我们来看一个关于随机森林的例题

以下关于random forest说法错误的是
A.rf中的每棵子树都是独立同分布的
B.rf中模型方差随着子树的增加而减少
C.rf主要通过增加子树之间的相关性来减少模型的方差
D.rf中模型偏差随着子树的增加而减少

答案:(ACD)
解析:
A 近似分布,但不独立(因为子样本集的相似性);
C 子树之间相关相关性越强,模型方差不一定减小,RF反而是通过D-C来处理子模型降低子模型间的相关性,来降低方差;
D 模型偏差随子模型数量的增加不一定减少,RF的主要目的在于降低方差。当增加随机森林中子树的数量时,实际上是在减少模型的方差,而不是直接降低偏差。如果想降低模型的偏差,应该考虑优化单个决策树的结构和其他相关超参数。

Boosting

核心思想:样本的权重

  • 没有先验知识的情况下,初始的分布应为等概分布,也就是训练集如果有N个样本,每个样本的分布概率为1/N
  • 每次循环后提高错误样本的分布概率,分错样本在训练集中所占权重增大, 使得下一次循环的弱学习器能够集中力量对这些错误样本进行判断

弱学习器的权重

  • 准确率越高的弱学习机权重越高

循环控制:损失函数达到最小

  • 在强学习器的组合中增加一个加权的弱学习器,使准确率提高,损失函数值减小

Stacking

Stacking算法(也称为stacked generalization)是一种用于集成学习的算法。它通过将多个基础模型的预测结果作为输入,再通过一个元模型来组合这些预测结果,从而得到最终的预测结果。Stacking算法的基本思想是将基础模型的预测结果作为新的特征,再将这些特征输入给元模型进行训练和预测。具体而言,Stacking算法的步骤如下:

  1. 将训练数据集分为若干个子集(通常是交叉验证的折数);
  2. 对于每个子集,使用不同的基础模型进行训练,并使用该模型对剩下的子集进行预测;
  3. 将不同模型的预测结果堆叠在一起,作为新的特征;
  4. 使用元模型(通常是线性回归、逻辑回归等)对新特征进行训练,并使用该模型对测试数据进行预测。

Stacking算法的优点在于它能够结合不同模型的优势,提高预测准确性。然而,Stacking算法也存在一些缺点,例如需要更多的计算资源和时间,以及可能会导致过拟合问题。因此,在使用Stacking算法时需要谨慎选择基础模型和元模型,并进行适当的调参和交叉验证。
在这里插入图片描述


http://www.mrgr.cn/news/82391.html

相关文章:

  • RabbitMQ-基本使用
  • Spring Boot 3 文件下载、多文件下载以及大文件分片下载、文件流处理、批量操作 和 分片技术
  • 1-markdown转网页样式页面 --[制作网页模板] 【测试代码下载】
  • 【GO基础学习】Go操作数据库MySQL
  • php 多进程那点事,用 swoole 如何解决呢 ?
  • Spring Boot自动装配代码详解
  • 华为OD机试真题---服务器广播
  • MySQL 03 章——基本的SELECT语句
  • 【UE5 C++课程系列笔记】20——共享指针的简单使用
  • MySQL 备份方案设计之准备事项
  • 服务器主机网络测试命令
  • 双目的一些文章学习
  • 企业二要素如何用java实现
  • HarmonyOS-面试整理
  • vue,使用unplugin-auto-import避免反复import,按需自动引入
  • 解释下torch中的scatter_add_
  • ACL的注意事项
  • Kafka集群部署与安装
  • 爱死机第四季(秘密关卡)4KHDR国语字幕
  • Redis - 5 ( 18000 字 Redis 入门级教程 )
  • @Cacheable 注解爆红(不兼容的类型。实际为 java. lang. String‘,需要 ‘boolean‘)
  • 如何在notepad++里面,修改注释颜色
  • 2021年福建公务员考试申论试题(县级卷)
  • 4.Web安全——JavaScript基础
  • Unity2022接入Google广告与支付SDK、导出工程到Android Studio使用JDK17进行打包完整流程与过程中的相关错误及处理经验总结
  • BGP(Border Gateway Protocol)路由收集器