python中sklearn的pipeline模块实例详解


Posted in Python onMay 21, 2020

最近在看《深度学习:基于Keras的Python实践(魏贞原)》这本书,书中8.3创建了一个Scikit-Learn的Pipeline,首先标准化数据集,然后创建和评估基线神经网络模型,代码如下:

# 数据正态化,改进算法
steps = []
steps.append(('standardize', StandardScaler()))
steps.append(('mlp', model))
pipeline = Pipeline(steps)
kfold = KFold(n_splits=10, shuffle=True, random_state=seed)
results = cross_val_score(pipeline, x, Y, cv=kfold)
print('Standardize: %.2f (%.2f) MSE' % (results.mean(), results.std()))

而PipeLine是什么来的呢?

Pipelines and composite estimators(官方文档)

转换器通常与分类器,回归器或其他估计器组合在一起,以构建复合估计器。最常用的工具是Pipeline。Pipeline通常与FeatureUnion结合使用,FeatureUnion将转换器的输出连接到一个复合特征空间中。 TransformedTargetRegressor处理转换目标(即对数变换y)。相反,Pipelines仅转换观察到的数据(X)。

Pipeline可用于将多个估计器链接为一个。这很有用,因为在处理数据时通常会有固定的步骤顺序,例如特征选择,归一化和分类。Pipeline在这里有多种用途:

  • 方便和封装:只需调用一次fit并在数据上进行一次predict即可拟合整个估计器序列。
  • 联合参数选择:可以一次对Pipeline中所有估计器的参数进行网格搜索(grid search )。
  • 安全性:通过确保使用相同的样本来训练转换器和预测器,Pipeline有助于避免在交叉验证中将测试数据的统计信息泄漏到经过训练的模型中。

Pipeline是使用 (key,value) 对的列表构建的,其中key是包含要提供此步骤名称的字符串,而value是一个估计器对象:

from sklearn.pipeline import Pipeline
from sklearn.svm import SVC
from sklearn.decomposition import PCA
estimators = [('reduce_dim', PCA()), ('clf', SVC())]
pipe = Pipeline(estimators)
pipe

output:

python中sklearn的pipeline模块实例详解

函数make_pipeline是构建pipelines的简写;它接受不同数量的估计器,并返回一个pipeline。它不需要也不允许命名估计器。而是将其名称自动设置为其类型的小写字母:

from sklearn.pipeline import make_pipeline
from sklearn.naive_bayes import MultinomialNB
from sklearn.preprocessing import Binarizer
make_pipeline(Binarizer(), MultinomialNB())

output:

python中sklearn的pipeline模块实例详解

总结

到此这篇关于python中sklearn的pipeline模块的文章就介绍到这了,更多相关python pipeline模块内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python 图片验证码代码
Dec 07 Python
Python输出PowerPoint(ppt)文件中全部文字信息的方法
Apr 28 Python
使用Python中的tkinter模块作图的方法
Feb 07 Python
Python计算斗牛游戏概率算法实例分析
Sep 26 Python
TensorFlow深度学习之卷积神经网络CNN
Mar 09 Python
Python输出\u编码将其转换成中文的实例
Dec 15 Python
Python爬虫实现获取动态gif格式搞笑图片的方法示例
Dec 24 Python
pytorch实现保证每次运行使用的随机数都相同
Feb 20 Python
Python+unittest+requests 接口自动化测试框架搭建教程
Oct 09 Python
多个版本的python共存时使用pip的正确做法
Oct 26 Python
Python 图片处理库exifread详解
Feb 25 Python
Python简易开发之制作计算器
Apr 28 Python
Python使用re模块验证危险字符
May 21 #Python
Django 解决新建表删除后无法重新创建等问题
May 21 #Python
python 解决Fatal error in launcher:错误问题
May 21 #Python
django实现日志按日期分割
May 21 #Python
Django之富文本(获取内容,设置内容方式)
May 21 #Python
使用Python防止SQL注入攻击的实现示例
May 21 #Python
Django的ListView超详细用法(含分页paginate)
May 21 #Python
You might like
php addslashes和mysql_real_escape_string
2010/01/24 PHP
php 目录与文件处理-郑阿奇(续)
2011/07/04 PHP
PHP实现读取一个1G的文件大小
2013/08/24 PHP
分享PHP-pcntl 实现多进程代码
2016/09/30 PHP
PHP实现打包zip并下载功能
2018/06/12 PHP
javaScript如何处理从java后台返回的list
2014/04/24 Javascript
AngularJS入门知识之MVW类框架的编程思想探讨
2014/12/08 Javascript
jQuery中replaceWith()方法用法实例
2014/12/25 Javascript
详解JavaScript对象序列化
2016/01/19 Javascript
使用postMesssage()实现iframe跨域页面间的信息传递
2016/03/29 Javascript
JS中使用apply方法通过不同数量的参数调用函数的方法
2016/05/31 Javascript
Bootstrap被封装的弹层
2016/07/20 Javascript
js Canvas绘制圆形时钟效果
2017/02/17 Javascript
关于jQuery中fade(),show()起始位置的一点小发现
2017/04/25 jQuery
利用ES6的Promise.all实现至少请求多长时间的实例
2017/08/28 Javascript
微信小程序倒计时功能实现代码
2017/11/09 Javascript
vue.js中实现登录控制的方法示例
2018/04/23 Javascript
this在vue和小程序中的使用详解
2019/01/28 Javascript
vue+element UI实现树形表格带复选框的示例代码
2019/04/16 Javascript
js中值引用和地址引用实例分析
2019/06/21 Javascript
将Django使用的数据库从MySQL迁移到PostgreSQL的教程
2015/04/11 Python
python正则表达式之作业计算器
2016/03/18 Python
Python时间获取及转换知识汇总
2017/01/11 Python
python版本的仿windows计划任务工具
2018/04/30 Python
Flask框架URL管理操作示例【基于@app.route】
2018/07/23 Python
Python地图绘制实操详解
2019/03/04 Python
在Tensorflow中查看权重的实现
2020/01/24 Python
Python写出新冠状病毒确诊人数地图的方法
2020/02/12 Python
Python 实现向word(docx)中输出
2020/02/13 Python
python字典和json.dumps()的遇到的坑分析
2020/03/11 Python
Python3.7下安装pyqt5的方法步骤(图文)
2020/05/12 Python
学python爬虫能做什么
2020/07/29 Python
辅导员评语
2014/05/04 职场文书
个人合伙协议书范本
2014/10/14 职场文书
2015高考寄语集锦
2015/02/27 职场文书
python实现黄金分割法的示例代码
2021/04/28 Python