# 【机器学习】集成学习——Stacking模型融合（理论+图解）

2021人工智能领域新星创作者，带你从入门到精通，该博客每天更新，逐渐完善机器学习各个知识体系的文章，帮助大家更高效学习。

# 二、Stacking集成模型

## 2.实现代码

import numpy as np
from sklearn.model_selection import KFold
from sklearn import datasets
from sklearn.linear_model import LogisticRegression
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
class MyStacking:
# 初始化模型参数
def __init__(self, estimators, final_estimator, cv=5, method='predict'):
self.cv = cv
self.method = method
self.estimators = estimators
self.final_estimator = final_estimator
# 模型训练
def fit(self, X, y):
# 获得一级输出
dataset_train = self.stacking(X, y)
# 模型融合
self.final_estimator.fit(dataset_train, y)
# 堆叠输出
def stacking(self, X, y):
kf = KFold(n_splits=self.cv, shuffle=True, random_state=2021)
# 获得一级输出
dataset_train = np.zeros((X.shape[0], len(self.estimators)))
for i, model in enumerate(self.estimators):
for (train, val) in kf.split(X, y):
X_train = X[train]
X_val = X[val]
y_train = y[train]
y_val_pred = model.fit(X_train, y_train).predict(X_val)
dataset_train[val, i] = y_val_pred
self.estimators[i] = model
return dataset_train
# 模型预测
def predict(self, X):
datasets_test = np.zeros((X.shape[0], len(self.estimators)))
for i, model in enumerate(self.estimators):
datasets_test[:, i] = model.predict(X)
return self.final_estimator.predict(datasets_test)
# 模型精度
def score(self, X, y):
datasets_test = np.zeros((X.shape[0], len(self.estimators)))
for i, model in enumerate(self.estimators):
datasets_test[:, i] = model.predict(X)
return self.final_estimator.score(datasets_test, y)
if __name__ == '__main__':
X_train, X_test, y_train, y_test = train_test_split(
X, y, train_size=0.7, random_state=0)
estimators = [
RandomForestClassifier(n_estimators=10),
]
clf = MyStacking(estimators=estimators,
final_estimator=LogisticRegression())
clf.fit(X_train, y_train)
print(clf.score(X_train, y_train))
print(clf.score(X_test, y_test))

|
11天前
|

【6月更文挑战第4天】数据集成在企业中发挥关键作用，连接数据孤岛，促进信息流动，提升决策能力。通过抽取、清洗、转换和加载（ETL）不同来源、格式的数据，整合到统一框架，进行深度分析。以零售商为例，集成销售、客户和供应链数据可优化库存管理。数据清洗确保质量，转换满足分析需求，最终加载到数据仓库。Python和pandas库是实现这一过程的工具之一。随着技术进步，数据集成将推动企业向智能化和个性化发展。
37 2
|
1天前
|

【机器学习】机器学习与AI大数据的融合：开启智能新时代
【机器学习】机器学习与AI大数据的融合：开启智能新时代
|
3天前
|

LLM应用实战：当图谱问答(KBQA)集成大模型(三)

13 1
|
9天前
|

【6月更文挑战第5天】本文将深入探讨人工智能（AI）和机器学习（ML）的融合，以及它们如何共同塑造我们的未来。我们将从基本概念开始，然后深入到这些技术的实际应用，最后讨论它们可能带来的影响和挑战。
15 5
|
16天前
|
Dart 前端开发 测试技术

【5月更文挑战第30天】 在本文中，我们将深入探讨移动应用开发领域的最新趋势：跨平台开发框架与原生操作系统的融合。随着移动设备成为日常生活的核心，高效、灵活且性能卓越的应用程序需求日益增长。文章分析了当前主流的跨平台工具如React Native和Flutter，并探讨了它们如何与iOS和Android等原生系统相互作用，以及这种融合对开发者、用户和整个移动生态系统意味着什么。我们还将预测未来可能的技术发展，并提出相应的策略建议。
15 0
|
19天前
|

【5月更文挑战第27天】随着敏捷开发和持续集成(CI)的广泛采用，自动化测试已成为确保软件质量和快速交付的基石。本文将探讨自动化测试在持续集成流程中的核心地位，分析其如何提高测试效率、降低错误率，并支持快速的迭代开发。通过实例和数据支持，我们将深入理解自动化测试对于现代软件开发实践的重要性，并讨论实施自动化测试时面临的挑战及解决策略。
28 1
|
1月前
|

33 0
|
1月前
|

39 2
|
1月前
|

MATLAB热传导方程模型最小二乘法模型、线性规划对集成电路板炉温优化
MATLAB热传导方程模型最小二乘法模型、线性规划对集成电路板炉温优化
13 1
|
1月前
|

【Python机器学习专栏】机器学习中的模型融合技术
【4月更文挑战第30天】模型融合，即集成学习，通过结合多个模型提升预测性能。常见方法包括：Bagging（如Random Forest）、Boosting（如AdaBoost、XGBoost）和Stacking。Python中可使用scikit-learn实现，例如BaggingClassifier示例。模型融合是机器学习中的强大工具，能提高整体性能并适应复杂问题。
9 0

• 人工智能平台 PAI

更多

更多

更多