news 2026/5/11 3:39:28

机器学习 - 堆叠集成(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/5/9 18:50:15

横评后发现AI论文工具,千笔AI VS 文途AI,本科生写作更高效!

随着人工智能技术的迅猛发展,AI辅助写作工具正逐步渗透到高校学术写作场景中,成为本科生、研究生完成毕业论文不可或缺的得力助手。越来越多的学生开始借助这些工具来提升写作效率、降低论文压力。然而,面对市场上种类繁多的AI写作工具&#…

作者头像 李华
网站建设 2026/5/11 3:39:28

RAG调优全攻略:解决大模型知识库检索难题,从入门到精通的实战指南

很多开发者在搭建完基础RAG后会发现:虽然demo跑通了,但在面对复杂业务、海量知识库或口语化提问时,准确率往往不尽如人意。RAG应用的落地也绝非“向量数据库 大模型”那么简单。本文结合最新的行业实践与技术调优指南,为你深度拆…

作者头像 李华
网站建设 2026/5/11 3:39:27

别再说没出路!2026中专大数据专业毕业生的真实就业方向与起薪揭秘

中专大数据专业就业方向与薪资分析2026年中专大数据专业毕业生在就业市场上有多种选择,涵盖技术、运营、销售等多个领域。以下为具体方向及薪资数据,结合行业趋势与证书(如CDA数据分析师)的加持作用。技术类岗位岗位名称职责技能要…

作者头像 李华
网站建设 2026/5/10 13:13:45

手机长焦镜头技术发展史与现状

长焦是唯一真正重要的手机摄像头 手机制造商正竭尽全力在长焦镜头上投入一切,以期脱颖而出。 开端 某公司的Galaxy S20 Ultra并非首款配备潜望式长焦镜头的手机——某机构和另一家机构都早于这家公司——但它是在美国首款对此大肆宣传的手机。某公司对S20 Ultra的几…

作者头像 李华
网站建设 2026/5/11 3:39:28

Java:统计字符串出现次数的终极解法!

文章目录 Java:统计字符串出现次数的终极解法!问题分析解决方案方案一:使用数组统计实现步骤:示例代码: 方案二:使用 HashMap 统计实现步骤:示例代码: 方案三:使用 Java …

作者头像 李华
网站建设 2026/5/3 11:22:39

vue.js如何支持内网视频大文件的分片上传?

网工大三党文件上传救星:原生JS实现10G大文件上传(Vue3IE8兼容) 兄弟,作为刚入坑网络工程的山西老狗,我太懂你现在的处境了——老师要10G大文件上传的毕业设计,网上找的代码全是“断头路”,后端…

作者头像 李华