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聊天程序实例代码分享
Nov 18 Python
python进阶教程之函数参数的多种传递方法
Aug 30 Python
Python使用os模块和fileinput模块来操作文件目录
Jan 19 Python
python中hashlib模块用法示例
Oct 30 Python
Python实现的rsa加密算法详解
Jan 24 Python
Python实现的计算器功能示例
Apr 26 Python
python使用pdfminer解析pdf文件的方法示例
Dec 20 Python
在python环境下运用kafka对数据进行实时传输的方法
Dec 27 Python
详解PANDAS 数据合并与重塑(join/merge篇)
Jul 09 Python
用Python去除图像的黑色或白色背景实例
Dec 12 Python
Python2和Python3中@abstractmethod使用方法
Feb 04 Python
python字符串替换re.sub()实例解析
Feb 09 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
一个很方便的 XML 类!!原创的噢
2006/10/09 PHP
MySQL相关说明
2007/01/15 PHP
PHP实现定时生成HTML网站首页实例代码
2008/11/20 PHP
将文件夹压缩成zip文件的php代码
2009/12/14 PHP
php合并js请求的例子
2013/11/01 PHP
一组PHP加密解密函数分享
2014/06/05 PHP
php递归创建目录的方法
2015/02/02 PHP
PHP Yaf框架的简单安装使用教程(推荐)
2016/06/08 PHP
php+ajax+json 详解及实例代码
2016/12/12 PHP
微信封装的调用微信签名包的类库
2017/06/08 PHP
QQ邮箱的一个文本编辑器代码
2007/03/14 Javascript
JS限制上传图片大小不使用控件在本地实现
2012/12/19 Javascript
javascript框架设计读书笔记之种子模块
2014/12/02 Javascript
jQuery Mobile动态刷新页面样式的实现方法
2016/05/28 Javascript
jQuery简单注册和禁用全局事件的方法
2016/07/25 Javascript
使用JavaScript实现链表的数据结构的代码
2017/08/02 Javascript
js+html实现周岁年龄计算器
2019/06/25 Javascript
vue3.0+vue-router+element-plus初实践
2020/12/02 Vue.js
仅用500行Python代码实现一个英文解析器的教程
2015/04/02 Python
python dict.get()和dict['key']的区别详解
2016/06/30 Python
python 实现删除文件或文件夹实例详解
2016/12/04 Python
Python实现钉钉发送报警消息的方法
2019/02/20 Python
Python编写合并字典并实现敏感目录的小脚本
2019/02/26 Python
keras 读取多标签图像数据方式
2020/06/12 Python
python交互模式基础知识点学习
2020/06/18 Python
Pytest测试框架基本使用方法详解
2020/11/25 Python
微信端html5页面调用分享接口示例
2018/03/14 HTML / CSS
店长职务说明书
2014/02/04 职场文书
前厅部经理岗位职责范文
2014/02/04 职场文书
交通事故赔偿协议书范本
2014/04/15 职场文书
大学生入党推荐书范文
2014/05/17 职场文书
工地质量标语
2014/06/12 职场文书
2014最新开业庆典策划方案(5篇)
2014/09/15 职场文书
小学运动会报道稿
2014/10/04 职场文书
旷课检讨书范文
2015/01/27 职场文书
个人党性锻炼总结
2015/03/05 职场文书