【Machine Learning】模型融合之Stacking
来源:互联网 发布:网络钟点工是真的吗 编辑:程序博客网 时间:2024/04/28 08:28
一、Stacking简介
Stacking(stacked generalization)是在大数据竞赛中不可缺少的武器,其指训练一个用于组合(combine)其他多个不同模型的模型,具体是说首先我们使用不同的算法或者其他方法能够训练出多个不同的模型,然后将这些模型的输出作为新的数据集,即将这些训练的模型的输出再作为为输入训练一个模型,最后得到一个最终的输出,下图为Stacking的大致流程图:
如果可以选用任意的组合算法,那么理论上,Stacking可以表示上面提到的各种Ensemble方法。但是在实际应用中通常使用单层logistic回归作为组合模型。
二、代码示例
在这里使用了mlxtend库,它可以很好地完成对sklearn模型地stacking。
# -*- coding: utf-8 -*-import picklefrom xgboost import XGBClassifierfrom sklearn.ensemble import ExtraTreesClassifier, RandomForestClassifierfrom sklearn.linear_model import LogisticRegressionfrom mlxtend.classifier import StackingCVClassifierwith open('../data/training_df.pkl', 'rb') as f: df = pickle.load(f)with open(r'../data/selected_feat_names.pkl', 'rb') as f: selected_feat_names = pickle.load(f)print("data loaded")# train on full data sety = df["attack_type"].valuesX = df[selected_feat_names].valuesxgb = XGBClassifier(learning_rate =0.5,n_estimators=300,max_depth=5,gamma=0,subsample=0.8,)rfc = RandomForestClassifier(n_jobs=-1, n_estimators=35, criterion="entropy")etc = ExtraTreesClassifier(n_jobs=-1, n_estimators=5, criterion="entropy")lr = LogisticRegression(n_jobs=-1, C=8) # meta classifiersclf = StackingCVClassifier(classifiers=[xgb, rfc, etc], meta_classifier=lr, use_probas=True, n_folds=3, verbose=3)sclf.fit(X, y)print("training finished")# save model for later predictingwith open(r'../data/stacking.pkl', 'wb') as f: pickle.dump(sclf, f)print("model dumped")
阅读全文
0 0
- 【Machine Learning】模型融合之Stacking
- 模型融合(stacking&blending)
- stacking 模型融合
- 模型融合(stacking&blending)
- Kaggle机器学习之模型融合(stacking)心得
- 数据比赛大杀器----模型融合(stacking&blending)
- 模型融合:bagging、Boosting、Blending、Stacking
- Ensembling&Stacking models(模型融合)
- 数据比赛大杀器----模型融合(stacking&blending)
- Bagging, boosting and stacking in machine learning
- Machine Learning 之 Learning
- Deep Learning模型之:Restricted Boltzmann Machine (RBM)
- Machine Learning with Scikit-Learn and Tensorflow 7.10 Stacking
- Machine Learning之概述
- Ensemble Learning-模型融合-Python实现
- Machine Learning 之 Types of Learning
- <zz>machine learning中的重要延伸模型
- Machine Learning 混合高斯模型
- virtualenv教程
- hdu 4911 Inversion
- HDFS基于路由的Federation方案
- 分解质因数-java
- hdu 4907 Task schedule
- 【Machine Learning】模型融合之Stacking
- 免费开放接口API
- 移动端常见的问题
- 欢迎使用CSDN-markdown编辑器
- HashMap与LinkedHashMap
- dubbo 既是提供方又是消费方的问题
- 计蒜客 ACM-ICPC 2017 Warmup Contest 12
- HDOJ 1708 Fibonacci String
- 初识指针-----经典指针详解