stacking集成模型示例如下:


stacking一般由2层堆叠构成

Stacking集成算法思路

上图为整体流程,思路如下:

  1. 把原始数据切分成两部分:训练集D-train与测试集D-test,训练集部分用来训练整体的Stacking集成模型,测试集部分用来测试集成模型

  2. 训练集D-train中又划分出两个部分:Training folds-训练集与Validation fold-验证集,其中Training folds部分用来训练初级学习器(浅黄色的模型)

  3. 下图中的Learn对应上图Training folds,用来训练初级学习器;下图中的Predict对应上图Validation fold,用来通过初级训练器得到预测结果Predictions,这些预测结果将用来训练次级学习器Model2

  1. Model2一般是逻辑回归,用来计算各个初级学习器的权重。

  2. 这一整套训练完成后,用D-test来测试整个集成模型,得到模型的指标

代码示例

# _*_coding:utf-8 _*_
# Time: 2022/3/29
""""""
from sklearn.ensemble import StackingClassifier
import pandas as pd
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.svm import SVC
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_scoredef load_data(samples=1000):"""用来生成训练、测试数据:param samples: 数据量:return: 返回x与y或切分训练集后的x与y"""data_x, data_y = make_classification(n_samples=samples, n_classes=4, n_features=10, n_informative=8)df_x = pd.DataFrame(data_x, columns=['f_1', 'f_2', 'f_3', 'f_4', 'f_5', 'f_6', "f_7", "f_8", "f_9", "f_10"])df_y = pd.Series(data_y)x_train, x_test, y_train, y_test = train_test_split(df_x, df_y, train_size=0.7, random_state=0, shuffle=True)return x_train, x_test, y_train, y_testdef main():x_train, x_test, y_train, y_test = load_data()stacking_classifier = StackingClassifier(estimators=[ # 初级学习器('rf', RandomForestClassifier(n_estimators=10, random_state=42)),('svr', make_pipeline(StandardScaler(), SVC(random_state=42)))],final_estimator=LogisticRegression()) # 次级学习器stacking_classifier.fit(x_train, y_train)result_prediction = stacking_classifier.predict(x_test)acc = accuracy_score(y_test, result_prediction)  # 准确率print("acc:", acc)if __name__ == '__main__':main()

机器学习集成模型学习——Stacking集成学习(五)相关推荐

  1. Stacking 集成学习在多因子选股中的应用

    Stacking 集成学习模型简介 Stacking 集成学习的原理 Stacking 是一种常见的集成学习框架.一般来说,Stacking 将训练一个多层(一般是两层, 本文中默认两层)的模型结构, ...

  2. 在深度学习中使用Bagging集成模型

    集成模型是什么? 集成是一种机器学习概念,使用相同的学习算法训练多个模型.Bagging是一种减少预测方差的方法,通过使用重复组合生成多组原始数据,从数据集生成额外的训练数据.Boosting 是一种 ...

  3. 【深度学习】-Imdb数据集情感分析之模型对比(4)- CNN-LSTM 集成模型

    [深度学习]-Imdb数据集情感分析之模型对比(4)- CNN-LSTM 集成模型 前言 [深度学习]-Imdb数据集情感分析之模型对比(3)- CNN [深度学习]-Imdb数据集情感分析之模型对比 ...

  4. 集成模型Xgboost!机器学习最热研究方向入门,附学习路线图

    导读:本文介绍了集成学习中比较具有代表性的方法,如Boosting.Bagging等.而XGBoost是集成学习中的佼佼者,目前,一些主流的互联网公司如腾讯.阿里巴巴等都已将XGBoost应用到其业务 ...

  5. 【机器学习】集成学习Stacking

    上半部分是用一个基础模型进行5折交叉验证,如:用XGBoost作为基础模型Model1,5折交叉验证就是先拿出四折作为training data,另外一折作为testing data.注意:在stac ...

  6. 树模型系列之集成学习(Bagging、Boosting、Stacking)

    文章目录 树模型系列之集成学习(Bagging.Boosting.Stacking) bagging Boosting Stacking 偏差与方差 集成学习的偏差与方差 Bagging 的偏差与方差 ...

  7. 机器学习集成模型学习——Bagging集成学习(三)

    Bagging bagging的集成方式是: 用1个模型(元模型) 然后将这个元模型分成多个相同模型,每个模型使用训练集的一部分进行训练,得到多个基模型 最后测试时分别跑每个模型,平均结果得出这个集成 ...

  8. 机器学习集成模型学习——投票集成Voting(二)

    Voting集成 投票机制就是多个模型分别预测,然后投票,票数最高的就是整个模型最后的效果 案例代码 from sklearn.linear_model import LogisticRegressi ...

  9. 机器学习集成模型ML ens学习——多层模型集成(一)

    集成模型就是把多个模型融合在一起使用,通过构建一层层的模型体系,最终得到不同模型的预测结果 首先安装:pip install mlens 案例 import pandas as pd from skl ...

最新文章

  1. 2021年大数据常用语言Scala(三十二):scala高级用法 样例类
  2. [笔记]C#基础入门(八)——C#标识符的命名规则
  3. 中科院、百度研究院等联合提出UGAN,生成图片难以溯源
  4. 洛谷——P1548 棋盘问题
  5. 目前电子计算机已经发展到,目前电子计算机已经发展到什么计算机?
  6. php异步请求$.post,如何用PHP实现异步请求、忽略返回值
  7. Bash : 索引数组
  8. 约瑟夫问题C语言加注释,用链表实现约瑟夫环【有注释,有很多注释】
  9. 负载均衡会话保持技术、原理、产品(以F5为例)
  10. 内存总是不够?HBaseGeoMesa配置优化了解一下
  11. 微信聊天可以带话题了 网友:朋友分享安利更方便了
  12. 接口 对象 = new 实现类 与 实现类 对象= new 实现类
  13. python游戏开发库_Python库之游戏开发及虚拟现实
  14. 国内的优秀HTML5前端开发框架
  15. php异业联盟平台源码,基于ThinkPHP5.1框架开发的B2C在线商城系统PHP源码
  16. 鸿蒙OS比fuchsia的优势,第一天带你走进华为开发者大会,了解鸿蒙OS
  17. python3将seq文件转化为avi
  18. Stringutill.isEmpty()和stringutil.isBlank()
  19. QT TCPsocket 封包 粘包分析
  20. (转载)C# Dictionary

热门文章

  1. 个人对于MySQL的理解_面试官:谈谈你对Mysql的MVCC的理解?
  2. MySQL表自动增长列插入数据
  3. oracle 数据补齐月份,Oracle自定义函数--增加月份
  4. linux32位运行64位程序,32位windows下可以运行的程序在64位linux下报错
  5. java map isempty_Java HashMap isEmpty() 使用方法及示例
  6. 如何自学游戏引擎的开发?
  7. Facebook 数据的横向扩展
  8. SecureCRT session 的迁移
  9. 模式识别之聚类算法k-均值---k-均值聚类算法c实现
  10. myeclipse查询mysql出来的汉字是乱码