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 ORM框架SQLAlchemy学习笔记之关系映射实例
Jun 10 Python
Python import自定义模块方法
Feb 12 Python
Python selenium 三种等待方式详解(必会)
Sep 15 Python
mac下给python3安装requests库和scrapy库的实例
Jun 13 Python
python微信好友数据分析详解
Nov 19 Python
python设计微型小说网站(基于Django+Bootstrap框架)
Jul 08 Python
Python 变量的创建过程详解
Sep 02 Python
使用 tf.nn.dynamic_rnn 展开时间维度方式
Jan 21 Python
Django Form设置文本框为readonly操作
Jul 03 Python
Python用K-means聚类算法进行客户分群的实现
Aug 23 Python
通过python-pptx模块操作ppt文件的方法
Dec 26 Python
浅谈Python类的单继承相关知识
May 12 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 array_filter除去数组中的空字符元素
2020/06/21 PHP
dhtmlxTree目录树增加右键菜单以及拖拽排序的实现方法
2013/04/26 PHP
php图片裁剪函数
2018/10/31 PHP
php获取是星期几的的一些常用姿势
2019/12/15 PHP
jQuery select控制插件
2009/08/17 Javascript
使用jquery动态加载javascript以减少服务器压力
2012/10/29 Javascript
圣诞节Merry Christmas给博客添加浪漫的下雪效果基于jquery实现
2012/12/27 Javascript
js在输入框屏蔽按键,只能键入数字的示例代码
2014/01/03 Javascript
JavaScript中的console.trace()函数介绍
2014/12/29 Javascript
jQuery实现仿Alipay支付宝首页全屏焦点图切换特效
2015/05/04 Javascript
JavaScript入门基础
2015/08/12 Javascript
JavaScript知识点整理
2015/12/09 Javascript
jQuery+css实现的时钟效果(兼容各浏览器)
2016/01/27 Javascript
jquery实现下拉框功能效果【实例代码】
2016/05/06 Javascript
jQuery根据name属性进行查找的用法分析
2016/06/23 Javascript
轻松实现js弹框显示选项
2016/09/13 Javascript
微信小程序 网络请求(GET请求)详解
2016/11/16 Javascript
详解Jquery EasyUI tree 的异步加载(遍历指定文件夹,根据文件夹内的文件生成tree)
2017/02/11 Javascript
浅谈vue中数据双向绑定的实现原理
2017/09/14 Javascript
详解ES6语法之可迭代协议和迭代器协议
2018/01/13 Javascript
JavaScript实现仿Clock ISO时钟
2018/06/29 Javascript
JS实现图片拖拽交换效果
2018/11/30 Javascript
监控Nodejs的性能实例代码
2019/07/02 NodeJs
nuxt.js添加环境变量,区分项目打包环境操作
2020/11/06 Javascript
python实现线程池的方法
2015/06/30 Python
用生成器来改写直接返回列表的函数方法
2017/05/25 Python
Python 处理数据的实例详解
2017/08/10 Python
numpy中的高维数组转置实例
2018/04/17 Python
Python批处理更改文件名os.rename的方法
2018/10/26 Python
python将txt文件读入为np.array的方法
2018/10/30 Python
Python使用修饰器进行异常日志记录操作示例
2019/03/19 Python
Python远程方法调用实现过程解析
2020/07/28 Python
MCM英国官网:奢侈皮具制品
2017/04/18 全球购物
食品安全承诺书
2014/05/22 职场文书
教室标语大全
2014/06/21 职场文书
运动会演讲稿50字
2014/08/25 职场文书