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基于Tkinter的HelloWorld入门实例
Jun 17 Python
Python编程实现删除VC临时文件及Debug目录的方法
Mar 22 Python
Python遍历文件夹和读写文件的实现方法
May 10 Python
利用Python如何批量修改数据库执行Sql文件
Jul 29 Python
pandas 将索引值相加的方法
Nov 15 Python
解决python2 绘图title,xlabel,ylabel出现中文乱码的问题
Jan 29 Python
详解Selenium+PhantomJS+python简单实现爬虫的功能
Jul 14 Python
python写入数据到csv或xlsx文件的3种方法
Aug 23 Python
使用python去除图片白色像素的实例
Dec 12 Python
Python ConfigParser模块的使用示例
Oct 12 Python
Python如何使用logging为Flask增加logid
Mar 30 Python
总结几个非常实用的Python库
Jun 26 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使用filter过滤器验证邮箱 ipv6地址 url验证
2013/12/25 PHP
简单实用的网站PHP缓存类实例
2014/07/18 PHP
php+ajax实现无刷新动态加载数据技术
2015/04/28 PHP
PHP内核探索:哈希表碰撞攻击原理
2015/07/31 PHP
jQuery 类twitter的文本字数限制带提示效果插件
2010/04/16 Javascript
JavaScript中的this关键字介绍与使用实例
2013/06/21 Javascript
javascript获取鼠标点击元素对象(示例代码)
2013/12/20 Javascript
动态创建script在IE中缓存js文件时导致编码的解决方法
2014/05/04 Javascript
Node.js中require的工作原理浅析
2014/06/24 Javascript
jquery实现简单实用的打分程序实例
2015/07/23 Javascript
JavaScript字符串删除重复字符的方法
2015/12/25 Javascript
jquery实现简单的遮罩层
2016/01/08 Javascript
jQuery遍历DOM节点操作之filter()方法详解
2016/04/14 Javascript
深入剖析JavaScript中的函数currying柯里化
2016/04/29 Javascript
EasyUI的doCellTip实现鼠标放到单元格上提示单元格内容
2016/08/24 Javascript
JSON 必知必会 观后记
2016/10/27 Javascript
完美解决axios在ie下的兼容性问题
2018/03/05 Javascript
微信小程序js文件改变参数并在视图上及时更新【推荐】
2018/06/11 Javascript
vue-cli3 karma单元测试的实现
2019/01/18 Javascript
微信小程序实现提交input信息到后台的方法示例
2019/01/19 Javascript
微信小程序授权登陆及每次检查是否授权实例代码
2019/09/18 Javascript
Python实现的多线程http压力测试代码
2017/02/08 Python
Python下载网络小说实例代码
2018/02/03 Python
python os.listdir按文件存取时间顺序列出目录的实例
2018/10/21 Python
python 实现提取log文件中的关键句子,并进行统计分析
2019/12/24 Python
10个python爬虫入门实例(小结)
2020/11/01 Python
Python+MySQL随机试卷及答案生成程序的示例代码
2021/02/01 Python
H5新属性audio音频和video视频的控制详解(推荐)
2016/12/09 HTML / CSS
澳大利亚制造的蜡烛和扩散器:Glasshouse Fragrances
2018/05/20 全球购物
电子工程专业毕业生求职信
2014/03/14 职场文书
乡村文明行动实施方案
2014/03/29 职场文书
营销总经理岗位职责范本
2014/09/02 职场文书
个人批评与自我批评
2014/10/15 职场文书
会议通知范文
2015/04/15 职场文书
vue3中provide && inject的使用
2021/07/01 Vue.js
与Windows10相比Windows11有哪些改进?值不值得升级?
2021/11/21 数码科技