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编程中super关键字的用法
Jun 24 Python
实例讲解Python中SocketServer模块处理网络请求的用法
Jun 28 Python
python 生成器生成杨辉三角的方法(必看)
Apr 10 Python
Python 机器学习库 NumPy入门教程
Apr 19 Python
Python3.6笔记之将程序运行结果输出到文件的方法
Apr 22 Python
Python 实现「食行生鲜」签到领积分功能
Sep 26 Python
在pycharm 中添加运行参数的操作方法
Jan 19 Python
Python第三方库face_recognition在windows上的安装过程
May 03 Python
Python语法垃圾回收机制原理解析
Mar 25 Python
Python使用tkinter实现小时钟效果
Feb 22 Python
使用pipenv管理python虚拟环境的全过程
Sep 25 Python
Python selenium绕过webdriver监测执行javascript
Apr 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
实用函数5
2007/11/08 PHP
在MongoDB中模拟Auto Increment的php代码
2011/03/06 PHP
PHPMYADMIN导入数据最大为2M的解决方法
2012/04/23 PHP
php使用pack处理二进制文件的方法
2014/07/03 PHP
php实现在服务器上创建目录的方法
2015/03/16 PHP
Symfony2开发之控制器用法实例分析
2016/02/05 PHP
PHP实践教程之过滤、验证、转义与密码详解
2017/07/24 PHP
JavaScript使用prototype定义对象类型
2007/02/07 Javascript
讲两件事:1.this指针的用法小探. 2.ie的attachEvent和firefox的addEventListener在事件处理上的区别
2007/04/12 Javascript
jquery ajax方式直接提交整个表单核心代码
2013/08/15 Javascript
jquery插件lazyload.js延迟加载图片的使用方法
2014/02/19 Javascript
jQuery之选项卡的简单实现
2014/02/28 Javascript
jquery操作checked属性以及disabled属性的多种方法
2014/06/20 Javascript
动态加载jQuery的方法
2015/06/16 Javascript
javascript每日必学之运算符
2016/02/16 Javascript
详解Backbone.js框架中的模型Model与其集合collection
2016/05/05 Javascript
javascript创建对象的几种模式介绍
2016/05/06 Javascript
js判断主流浏览器类型和版本号的简单实现代码
2016/05/26 Javascript
JavaScript闭包_动力节点Java学院整理
2017/06/27 Javascript
Vue.js项目模板搭建图文教程
2017/09/20 Javascript
JavaScript获取时区实现过程解析
2020/09/24 Javascript
python3之模块psutil系统性能信息使用
2018/05/30 Python
Python基础学习之类与实例基本用法与注意事项详解
2019/06/17 Python
python实现鸢尾花三种聚类算法(K-means,AGNES,DBScan)
2019/06/27 Python
详解利用css3的var()实现运行时改变scss的变量值
2021/03/02 HTML / CSS
Helly Hansen工作服美国官方网上商店:为最恶劣的环境
2019/09/04 全球购物
EJB的角色和三个对象
2015/12/31 面试题
中软国际Java程序员笔试题
2014/07/19 面试题
2014道德模范事迹材料
2014/02/16 职场文书
公司成本主管岗位责任制
2014/02/21 职场文书
寒假家长评语大全
2014/04/16 职场文书
怀念母亲教学反思
2014/04/28 职场文书
小学阳光体育活动总结
2014/07/05 职场文书
校运动会广播稿300字
2014/10/07 职场文书
国际残疾人日广播稿范文
2014/10/09 职场文书
2016猴年春节问候语
2015/11/11 职场文书