news 2026/4/17 23:03:09

机器学习 - 堆叠集成(Stacking)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
机器学习 - 堆叠集成(Stacking)

摘要:堆叠集成(Stacking)是一种机器学习集成技术,通过分层组合多个基础模型和元模型提升预测性能。其核心流程包括:先用不同算法训练基础模型,再将它们的预测结果作为输入训练元模型,最终由元模型输出预测结果。该方法利用交叉验证避免过拟合,通过组合多样化的基础模型(如随机森林、梯度提升)和元模型(如逻辑回归)实现性能优化。示例代码在鸢尾花数据集上实现了96.67%的准确率,验证了堆叠集成通过模型互补提升预测效果的优势。

目录

机器学习 - 堆叠集成(Stacking)

示例

代码说明

输出结果


机器学习 - 堆叠集成(Stacking)

堆叠集成(Stacking),又称堆叠泛化(stacked generalization),是机器学习中的一种集成学习技术。它通过分层组合多个模型,以提升预测准确率。该技术的核心流程是:先在原始训练数据集上训练一组基础模型(base models),再将这些基础模型的预测结果作为输入,训练一个元模型(meta-model),最终由元模型输出最终预测结果。

堆叠集成的核心思想是:利用多个模型的优势,通过合理组合弥补各自的不足。通过选用一组假设不同、能捕捉数据不同特征的多样化模型,可提升整个集成系统的综合预测能力。

堆叠技术可分为两个阶段:

  1. 基础模型训练阶段(Base Model Training):在该阶段,一组基础模型在原始训练数据上进行训练。这些模型可以是任意类型,例如决策树、随机森林、支持向量机、神经网络或其他任何算法。每个模型在训练数据的一个子集上训练,并对剩余的数据点生成一组预测结果。
  2. 元模型训练阶段(Meta-model Training):在该阶段,基础模型的预测结果被用作元模型的输入,而元模型则在原始训练数据上进行训练。元模型的目标是学习如何组合基础模型的预测结果,以生成更准确的预测。元模型同样可以是任意类型,例如线性回归、逻辑回归或其他算法。为避免过拟合,元模型的训练通常采用交叉验证(cross-validation)方法。

元模型训练完成后,即可用于新数据的预测:先通过所有基础模型得到预测结果,再将这些结果输入元模型,由元模型输出最终预测值。基础模型的预测结果可通过多种方式组合,例如取平均值、加权平均值或最大值等。

示例

以下是使用 scikit-learn 库在 Python 中实现堆叠集成的示例代码:

from sklearn.datasets import load_iris from sklearn.model_selection import cross_val_predict from sklearn.linear_model import LogisticRegression from sklearn.ensemble import RandomForestClassifier, GradientBoostingClassifier from mlxtend.classifier import StackingClassifier from sklearn.metrics import accuracy_score # 加载鸢尾花(iris)数据集 iris = load_iris() X, y = iris.data, iris.target # 定义基础模型 rf = RandomForestClassifier(n_estimators=10, random_state=42) # 随机森林分类器 gb = GradientBoostingClassifier(random_state=42) # 梯度提升分类器 # 定义元模型 lr = LogisticRegression() # 逻辑回归分类器 # 定义堆叠分类器(组合基础模型和元模型) stack = StackingClassifier(classifiers=[rf, gb], meta_classifier=lr) # 使用交叉验证生成元模型的训练数据(预测结果) y_pred = cross_val_predict(stack, X, y, cv=5) # 评估堆叠模型的性能(使用准确率指标) acc = accuracy_score(y, y_pred) print(f"准确率: {acc}")

代码说明

  1. 加载数据集:使用load_iris()加载鸢尾花数据集,该数据集包含花的特征数据(X)和类别标签(y)。
  2. 定义基础模型:选用随机森林分类器(RandomForestClassifier)和梯度提升分类器(GradientBoostingClassifier)作为基础模型,两种模型具有不同的算法逻辑,可互补捕捉数据特征。
  3. 定义元模型:选用逻辑回归(LogisticRegression)作为元模型,用于整合基础模型的预测结果。
  4. 构建堆叠分类器:通过StackingClassifier类组合基础模型和元模型,形成完整的堆叠集成模型。
  5. 交叉验证预测:使用cross_val_predict函数通过 5 折交叉验证(cv=5)生成元模型的输入数据(即基础模型在不同数据子集上的预测结果),避免过拟合。
  6. 性能评估:使用准确率(accuracy_score)指标评估堆叠模型的预测效果。

输出结果

运行代码后,将得到以下输出:

plaintext

准确率: 0.9666666666666667

该结果表明,堆叠集成模型在鸢尾花数据集上的预测准确率约为 96.67%,体现了其通过组合多个模型提升预测性能的优势。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 8:56:43

计算机毕设java学校足球队信息管理系统 基于Java的校园足球队信息管理平台设计与实现 Java技术驱动的学校足球队信息管理系统开发

计算机毕设java学校足球队信息管理系统4834r9(配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。 随着互联网技术的飞速发展,数字化管理已成为各个领域的必然趋势。在学…

作者头像 李华
网站建设 2026/4/18 8:56:30

计算机毕业设计之jsp个人购物网站的实现

快速发展的社会中,人们的生活水平都在提高,生活节奏也在逐渐加快。为了节省时间和提高工作效率,越来越多的人选择利用互联网进行线上打理各种事务,然后线上管理系统也就相继涌现。与此同时,人们开始接受方便的生活方式…

作者头像 李华
网站建设 2026/4/18 5:30:58

图解AI三大核心技术:RAG、大模型、智能体

最后唠两句 为什么AI大模型成为越来越多程序员转行就业、升职加薪的首选 很简单,这些岗位缺人且高薪 智联招聘的最新数据给出了最直观的印证:2025年2月,AI领域求职人数同比增幅突破200% ,远超其他行业平均水平;整个…

作者头像 李华
网站建设 2026/4/18 6:31:30

3D 场景灯光设计技巧详解:如何用光线营造氛围并讲好视觉故事

在 3D 场景创作中,灯光不仅是让物体“看得见”的工具,更是品牌氛围、情绪传达与叙事的核心语言。一张技术正确的渲染图,可能面面俱到却缺乏情感,而真正打动人的作品,多数是通过光来引导观众的感受和注意力。&#x1f3…

作者头像 李华
网站建设 2026/4/17 15:54:54

荣耀节后新品阵容曝光:笔记本、折叠屏领衔 还有平板

magic6至臻版 春节假期未至,荣耀2026年的首批重磅新品阵容便已浮出水面。据数码博主爆料,荣耀计划在春节后(大概是3月)推出一系列新品,包括两款笔记本、一款折叠屏旗舰手机及一款平板电脑,开启新一年的产品…

作者头像 李华