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 不关闭控制台的实现方法
Oct 23 Python
Python中条件选择和循环语句使用方法介绍
Mar 13 Python
利用Python查看目录中的文件示例详解
Aug 28 Python
浅谈Python中的作用域规则和闭包
Mar 20 Python
用TensorFlow实现多类支持向量机的示例代码
Apr 28 Python
Python3.6.0+opencv3.3.0人脸检测示例
May 25 Python
python算法与数据结构之冒泡排序实例详解
Jun 22 Python
Python3内置模块之base64编解码方法详解
Jul 13 Python
使用Django xadmin 实现修改时间选择器为不可输入状态
Mar 30 Python
python 怎样进行内存管理
Nov 10 Python
Python3.9.0 a1安装pygame出错解决全过程(小结)
Feb 02 Python
python上下文管理的使用场景实例讲解
Mar 03 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页面防重复提交方法总结
2013/11/25 PHP
PHP实现数组转JSon和JSon转数组的方法示例
2018/06/14 PHP
php给数组赋值的实例方法
2019/09/26 PHP
火狐4、谷歌12不支持Jquery Validator的解决方法分享
2011/06/20 Javascript
原生javascript图片自动或手动切换示例附演示源码
2013/09/04 Javascript
$(document).ready(function() {})不执行初始化脚本
2014/06/19 Javascript
jquery实现导航固定顶部的效果仿蘑菇街
2014/10/22 Javascript
完美实现仿QQ空间评论回复特效
2015/05/06 Javascript
JavaScript实现简单获取当前网页网址的方法
2015/11/09 Javascript
AngularJs中 ng-repeat指令中实现含有自定义指令的动态html的方法
2017/01/19 Javascript
JavaScript canvas实现围绕旋转动画
2017/11/18 Javascript
vue 自定义提示框(Toast)组件的实现代码
2018/08/17 Javascript
webpack优化之代码分割与公共代码提取详解
2019/11/22 Javascript
[06:23]2014DOTA2西雅图国际邀请赛 小组赛7月12日TOPPLAY
2014/07/12 DOTA
Python 数据结构之队列的实现
2017/01/22 Python
python的staticmethod与classmethod实现实例代码
2018/02/11 Python
python3 遍历删除特定后缀名文件的方法
2018/04/23 Python
Flask框架Flask-Login用法分析
2018/07/23 Python
用Python将结果保存为xlsx的方法
2019/01/28 Python
使用Python快速制作可视化报表的方法
2019/02/03 Python
OpenCV 轮廓检测的实现方法
2019/07/03 Python
python 哈希表实现简单python字典代码实例
2019/09/27 Python
Python异常模块traceback用法实例分析
2019/10/22 Python
Django实现celery定时任务过程解析
2020/04/21 Python
python 引用传递和值传递详解(实参,形参)
2020/06/05 Python
用Python实现童年贪吃蛇小游戏功能的实例代码
2020/12/07 Python
CSS3中的5个有趣的新技术
2009/04/02 HTML / CSS
专业实习自我鉴定
2013/10/29 职场文书
南京青奥会口号
2014/06/12 职场文书
2015年医务人员医德医风自我评价
2015/03/03 职场文书
军训个人总结
2015/03/03 职场文书
护理自荐信
2019/05/14 职场文书
idea搭建可运行Servlet的Web项目
2021/06/26 Java/Android
排查并解决MySQL生产库内存使用率高的报警
2022/04/11 MySQL
JAVA 线程池(池化技术)的实现原理
2022/04/28 Java/Android
解决spring.thymeleaf.cache=false不起作用的问题
2022/06/10 Java/Android