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获取Linux系统的各种信息
Jul 10 Python
实例解析Python的Twisted框架中Deferred对象的用法
May 25 Python
python实现字典(dict)和字符串(string)的相互转换方法
Mar 01 Python
wxpython实现图书管理系统
Mar 12 Python
Python 读写文件的操作代码
Sep 20 Python
Python pyinotify模块实现对文档的实时监控功能方法
Oct 13 Python
对python 多个分隔符split 的实例详解
Dec 20 Python
Python多进程fork()函数详解
Feb 22 Python
np.random.seed() 的使用详解
Jan 14 Python
pip安装提示Twisted错误问题(Python3.6.4安装Twisted错误)
May 09 Python
Django-Scrapy生成后端json接口的方法示例
Oct 06 Python
Django开发RESTful API实现增删改查(入门级)
May 10 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 urlencode()与urldecode()函数字符编码原理详解
2011/12/06 PHP
用PHP书写安全的脚本代码
2012/02/05 PHP
详解PHP中的Traits
2015/07/29 PHP
Javascript SHA-1:Secure Hash Algorithm
2006/12/20 Javascript
基于Jquery的简单&简陋Tabs插件代码
2010/02/09 Javascript
基于javascript 闭包基础分享
2013/07/10 Javascript
js Map List 遍历使用示例
2013/07/10 Javascript
js如何判断用户是否是用微信浏览器
2014/06/05 Javascript
javascript闭包的理解
2015/04/01 Javascript
JS替换字符串中空格方法
2015/04/17 Javascript
js实现仿MSN带关闭功能的右下角弹窗代码
2015/09/04 Javascript
JS+CSS实现DIV层的展开、收缩效果
2016/01/28 Javascript
Javascript基础学习笔记(菜鸟必看篇)
2016/07/22 Javascript
js中遍历Map对象的方法
2016/07/27 Javascript
js 获取范围内的随机数实例代码
2016/08/02 Javascript
微信小程序实现点击按钮移动view标签的位置功能示例【附demo源码下载】
2017/12/06 Javascript
Node.js net模块功能及事件监听用法分析
2019/01/05 Javascript
简单了解JavaScript sort方法
2019/11/25 Javascript
微信小程序按顺序同步执行的两种方式
2019/12/20 Javascript
Js图片点击切换轮播实现代码
2020/07/27 Javascript
微信小程序入门之绘制时钟
2020/10/22 Javascript
Vue 实现可视化拖拽页面编辑器
2021/02/01 Vue.js
[14:25]教你分分钟做大人:主宰(HEROS)
2014/12/08 DOTA
python 提取文件的小程序
2009/07/29 Python
在 Django/Flask 开发服务器上使用 HTTPS
2014/07/03 Python
利用python获取Ping结果示例代码
2017/07/06 Python
pyqt5实现登录界面的模板
2020/05/30 Python
django filter过滤器实现显示某个类型指定字段不同值方式
2020/07/16 Python
Windows下PyCharm配置Anaconda环境(超详细教程)
2020/07/31 Python
CSS3 2D模拟实现摩天轮旋转效果
2016/11/16 HTML / CSS
2019史上最全Database工程师题库
2015/12/06 面试题
关于十八大的演讲稿
2014/09/15 职场文书
2014年卫生保健工作总结
2014/12/08 职场文书
焦裕禄观后感
2015/06/03 职场文书
javascript遍历对象的五种方式实例代码
2021/10/24 Javascript
一篇文章了解正则表达式的替换技巧
2022/02/24 Javascript