机器学习集成模型学习——Stacking集成学习(五)
stacking集成模型示例如下:
stacking一般由2层堆叠构成
Stacking集成算法思路
上图为整体流程,思路如下:
把原始数据切分成两部分:训练集
D-train
与测试集D-test
,训练集部分用来训练整体的Stacking集成模型,测试集部分用来测试集成模型训练集
D-train
中又划分出两个部分:Training folds
-训练集与Validation fold
-验证集,其中Training folds
部分用来训练初级学习器(浅黄色的模型)下图中的
Learn
对应上图Training folds
,用来训练初级学习器;下图中的Predict
对应上图Validation fold
,用来通过初级训练器得到预测结果Predictions
,这些预测结果将用来训练次级学习器Model2
Model2
一般是逻辑回归,用来计算各个初级学习器的权重。这一整套训练完成后,用
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集成学习(五)相关推荐
- Stacking 集成学习在多因子选股中的应用
Stacking 集成学习模型简介 Stacking 集成学习的原理 Stacking 是一种常见的集成学习框架.一般来说,Stacking 将训练一个多层(一般是两层, 本文中默认两层)的模型结构, ...
- 在深度学习中使用Bagging集成模型
集成模型是什么? 集成是一种机器学习概念,使用相同的学习算法训练多个模型.Bagging是一种减少预测方差的方法,通过使用重复组合生成多组原始数据,从数据集生成额外的训练数据.Boosting 是一种 ...
- 【深度学习】-Imdb数据集情感分析之模型对比(4)- CNN-LSTM 集成模型
[深度学习]-Imdb数据集情感分析之模型对比(4)- CNN-LSTM 集成模型 前言 [深度学习]-Imdb数据集情感分析之模型对比(3)- CNN [深度学习]-Imdb数据集情感分析之模型对比 ...
- 集成模型Xgboost!机器学习最热研究方向入门,附学习路线图
导读:本文介绍了集成学习中比较具有代表性的方法,如Boosting.Bagging等.而XGBoost是集成学习中的佼佼者,目前,一些主流的互联网公司如腾讯.阿里巴巴等都已将XGBoost应用到其业务 ...
- 【机器学习】集成学习Stacking
上半部分是用一个基础模型进行5折交叉验证,如:用XGBoost作为基础模型Model1,5折交叉验证就是先拿出四折作为training data,另外一折作为testing data.注意:在stac ...
- 树模型系列之集成学习(Bagging、Boosting、Stacking)
文章目录 树模型系列之集成学习(Bagging.Boosting.Stacking) bagging Boosting Stacking 偏差与方差 集成学习的偏差与方差 Bagging 的偏差与方差 ...
- 机器学习集成模型学习——Bagging集成学习(三)
Bagging bagging的集成方式是: 用1个模型(元模型) 然后将这个元模型分成多个相同模型,每个模型使用训练集的一部分进行训练,得到多个基模型 最后测试时分别跑每个模型,平均结果得出这个集成 ...
- 机器学习集成模型学习——投票集成Voting(二)
Voting集成 投票机制就是多个模型分别预测,然后投票,票数最高的就是整个模型最后的效果 案例代码 from sklearn.linear_model import LogisticRegressi ...
- 机器学习集成模型ML ens学习——多层模型集成(一)
集成模型就是把多个模型融合在一起使用,通过构建一层层的模型体系,最终得到不同模型的预测结果 首先安装:pip install mlens 案例 import pandas as pd from skl ...
最新文章
- 2021年大数据常用语言Scala(三十二):scala高级用法 样例类
- [笔记]C#基础入门(八)——C#标识符的命名规则
- 中科院、百度研究院等联合提出UGAN,生成图片难以溯源
- 洛谷——P1548 棋盘问题
- 目前电子计算机已经发展到,目前电子计算机已经发展到什么计算机?
- php异步请求$.post,如何用PHP实现异步请求、忽略返回值
- Bash : 索引数组
- 约瑟夫问题C语言加注释,用链表实现约瑟夫环【有注释,有很多注释】
- 负载均衡会话保持技术、原理、产品(以F5为例)
- 内存总是不够?HBaseGeoMesa配置优化了解一下
- 微信聊天可以带话题了 网友:朋友分享安利更方便了
- 接口 对象 = new 实现类 与 实现类 对象= new 实现类
- python游戏开发库_Python库之游戏开发及虚拟现实
- 国内的优秀HTML5前端开发框架
- php异业联盟平台源码,基于ThinkPHP5.1框架开发的B2C在线商城系统PHP源码
- 鸿蒙OS比fuchsia的优势,第一天带你走进华为开发者大会,了解鸿蒙OS
- python3将seq文件转化为avi
- Stringutill.isEmpty()和stringutil.isBlank()
- QT TCPsocket 封包 粘包分析
- (转载)C# Dictionary
热门文章
- 个人对于MySQL的理解_面试官:谈谈你对Mysql的MVCC的理解?
- MySQL表自动增长列插入数据
- oracle 数据补齐月份,Oracle自定义函数--增加月份
- linux32位运行64位程序,32位windows下可以运行的程序在64位linux下报错
- java map isempty_Java HashMap isEmpty() 使用方法及示例
- 如何自学游戏引擎的开发?
- Facebook 数据的横向扩展
- SecureCRT session 的迁移
- 模式识别之聚类算法k-均值---k-均值聚类算法c实现
- myeclipse查询mysql出来的汉字是乱码