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 logging模块学习笔记
May 24 Python
Python注释详解
Jun 01 Python
同时安装Python2 & Python3 cmd下版本自由选择的方法
Dec 09 Python
Python实现读取字符串按列分配后按行输出示例
Apr 17 Python
python小程序实现刷票功能详解
Jul 17 Python
python性能测量工具cProfile使用解析
Sep 26 Python
Python调用scp向服务器上传文件示例
Dec 22 Python
将tensorflow模型打包成PB文件及PB文件读取方式
Jan 23 Python
Python闭包与装饰器原理及实例解析
Apr 30 Python
简单了解Python多态与属性运行原理
Jun 15 Python
Python基于正则表达式实现计算器功能
Jul 13 Python
带你学习Python如何实现回归树模型
Jul 16 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进程间通讯实例分析
2016/07/11 PHP
thinkPHP交易详情查询功能详解
2016/12/02 PHP
Thinkphp框架中D方法与M方法的区别
2016/12/23 PHP
使用ucenter实现多站点同步登录的讲解
2019/03/21 PHP
PHP pthreads v3下同步处理synchronized用法示例
2020/02/21 PHP
找到一点可怜的关于dojo资料,谢谢作者!
2006/12/06 Javascript
Javascript实现颜色rgb与16进制转换的方法
2015/04/18 Javascript
个人总结的一些JavaScript技巧、实用函数、简洁方法、编程细节
2015/06/10 Javascript
Javascript实现的简单右键菜单类
2015/09/23 Javascript
浅析AMD CMD CommonJS规范--javascript模块化加载学习心得总结
2016/03/16 Javascript
bootstrap实现图片自动轮播
2016/12/21 Javascript
浅谈Vue.js
2017/03/02 Javascript
JS实现读取xml内容并输出到div中的方法示例
2018/04/19 Javascript
node前端模板引擎Jade之标签的基本写法
2018/05/11 Javascript
jquery获取img的src值实例介绍
2019/01/16 jQuery
详解Next.js页面渲染的优化方案
2019/01/27 Javascript
详解 微信小程序开发框架(MINA)
2019/05/17 Javascript
基于jQuery的时间戳与日期间的转化
2019/06/21 jQuery
利用webpack理解CommonJS和ES Modules的差异区别
2020/06/16 Javascript
[36:52]DOTA2真视界:基辅特锦赛总决赛
2017/05/21 DOTA
举例讲解Python设计模式编程中的访问者与观察者模式
2016/01/26 Python
Python+tkinter使用40行代码实现计算器功能
2018/01/30 Python
python 字典访问的三种方法小结
2019/12/05 Python
Django中的AutoField字段使用
2020/05/18 Python
Python word文本自动化操作实现方法解析
2020/11/05 Python
详解HTML5中div和section以及article的区别
2015/07/14 HTML / CSS
Expedia法国:全球最大在线旅游公司
2018/09/30 全球购物
产品销售员岗位职责
2013/12/18 职场文书
北京大学自荐信范文
2014/01/28 职场文书
优秀干部获奖感言
2014/01/31 职场文书
法律专业自荐信
2014/06/03 职场文书
运动会报道稿大全
2015/07/23 职场文书
KTV员工管理制度
2015/08/06 职场文书
《称赞》教学反思
2016/02/17 职场文书
oracle DGMGRL ORA-16603报错的解决方法(DG Broker)
2021/04/06 Oracle
Golang标准库syscall详解(什么是系统调用)
2021/05/25 Golang