机器学习tips:什么是pipeline?
任何关于算法、编程、AI行业知识或博客内容的问题,可以随时扫码关注公众号「图灵的猫」,加入”学习小组“,沙雕博主在线答疑~此外,公众号内还有更多AI、算法、编程和大数据知识分享,以及免费的SSR节点和学习资料。其他平台(知乎/B站)也是同名「图灵的猫」,不要迷路哦~
一个典型的机器学习构建包含若干个过程
- 1、源数据ETL
- 2、数据预处理
- 3、特征选取
- 4、模型训练与验证
以上四个步骤可以抽象为一个包括多个步骤的流水线式工作,从数据收集开始至输出我们需要的最终结果。因此,对以上多个步骤、进行抽象建模,简化为流水线式工作流程则存在着可行性,对利用spark进行机器学习的用户来说,流水线式机器学习比单个步骤独立建模更加高效、易用。
管道机制在机器学习算法中得以应用的根源在于,参数集在新数据集(比如测试集)上的重复使用。
管道机制实现了对全部步骤的流式化封装和管理(streaming workflows with pipelines)。注意:管道机制更像是编程技巧的创新,而非算法的创新。
接下来我们以一个具体的例子来演示sklearn库中强大的Pipeline用法:
1. 加载数据集
from pandas as pd
from sklearn.cross_validation import train_test_split
from sklearn.preprocessing import LabelEncoderdf = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/''breast-cancer-wisconsin/wdbc.data', header=None)# Breast Cancer Wisconsin datasetX, y = df.values[:, 2:], df.values[:, 1]# y为字符型标签# 使用LabelEncoder类将其转换为0开始的数值型
encoder = LabelEncoder()
y = encoder.fit_transform(y)>>> encoder.transform(['M', 'B'])array([1, 0])
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=.2, random_state=0)
2. 构思算法的流程
可放在Pipeline中的步骤可能有:
- 特征标准化是需要的,可作为第一个环节
- 既然是分类器,classifier也是少不了的,自然是最后一个环节
- 中间可加上比如数据降维(PCA)
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
from sklearn.linear_model import LogisticRegressionfrom sklearn.pipeline import Pipelinepipe_lr = Pipeline([('sc', StandardScaler()),('pca', PCA(n_components=2)),('clf', LogisticRegression(random_state=1))])
pipe_lr.fit(X_train, y_train)
print('Test accuracy: %.3f' % pipe_lr.score(X_test, y_test))# Test accuracy: 0.947
Pipeline对象接受二元tuple构成的list,每一个二元 tuple 中的第一个元素为 arbitrary identifier string,我们用以获取(access)Pipeline object 中的 individual elements,二元 tuple 中的第二个元素是 scikit-learn与之相适配的transformer 或者 estimator。
Pipeline([('sc', StandardScaler()), ('pca', PCA(n_components=2)), ('clf', LogisticRegression(random_state=1))])
3. Pipeline执行流程的分析
Pipeline 的中间过程由scikit-learn相适配的转换器(transformer)构成,最后一步是一个estimator。比如上述的代码,StandardScaler和PCA transformer 构成intermediate steps,LogisticRegression 作为最终的estimator。
当我们执行 pipe_lr.fit(X_train, y_train)
时,首先由StandardScaler在训练集上执行 fit和transform方法,transformed后的数据又被传递给Pipeline对象的下一步,也即PCA()。和StandardScaler一样,PCA也是执行fit和transform方法,最终将转换后的数据传递给 LosigsticRegression。整个流程如下图所示:
参考文章:
Sklearn中的pipeline
机器学习tips:什么是pipeline?相关推荐
- 机器学习Tips:关于Scikit-Learn的 10 个小秘密
作者 | Rebecca Vickery 原文 | 见『阅读原文』 编译 | NewBeeNLP 写在前面 Scikit-learn是使用最广泛的Python机器学习库之一.它有标准化和简单的接口,用 ...
- 准确率 召回率_机器学习tips(四):精确率(precision)和召回率(recall)
精确率(precision)和召回率(recall) 混淆矩阵 True Positive(真正, TP):将正类预测为正类数. True Negative(真负 , TN):将负类预测为负类数. F ...
- Tensorflow pipeline是什么?
参考文章:机器学习tips:什么是pipeline? 参考文章2:初识pipeline 参考文章3:用 Pipeline 将训练集参数重复应用到测试集 参考文章4:Tensorflow高效流水线Pip ...
- 基于Kubernetes 的机器学习工作流
https://www.toutiao.com/a6642101619120931335/ 2019-01-03 18:00:00 介绍 Pipeline是Kubeflow社区最近开源的一个端到端工作 ...
- iris流程图_如何搭建一个简单的机器学习流水线?
阅读此分步教程,学会通过导入scikit-learn包来搭建一个简单的机器学习流水线(pipeline) 一个机器学习模型中,有很多可移动的组件需要被组合在一起,模型才能被执行并成功的得到结果.把机器 ...
- 基于 WeDataSphere Prophecis 与 KubeSphere 构建云原生机器学习平台
KubeSphere 开源社区的小伙伴们,大家好.我是微众银行大数据平台的工程师周可,接下来给大家分享的是基于 WeDataSphere 和 KubeSphere 这两个开源社区的产品去构建一个云原生 ...
- sklearn之pipeline:pipeline函数/make_pipeline函数的简介及其区别联系、使用技巧、案例应用之详细攻略
sklearn之pipeline:pipeline函数/make_pipeline函数的简介及其区别联系.使用技巧.案例应用之详细攻略 目录 sklearn.pipeline函数简介 1.Why pi ...
- 大数据Spark实战第七集 机器学习和数据处理
机器学习是什么: 机器学习与机器学习工作流 在开始本课时的学习之前,我们先来讲解上个课时的思考题:成环的路径会使消息一直传递下去,所以需要在发送消息时对消息最初出发的顶点和当前顶点进行校验. 下面我们 ...
- 吴恩达《机器学习》课程总结
机器学习课程总结 一.有监督学习(Supervised learning) 1. 线性回归(Linear regression) 2. 逻辑回归(Logistic regression) 3. 神经网 ...
- Azure机器学习——Azure机器学习介绍
Azure机器学习介绍 一.什么是Azure机器学习? 二.Azure 机器学习的几个重要概念 工作区(Workspace) 数据存储(Datastore) 计算目标(Compute Targets) ...
最新文章
- jenkins blue ocean 与 pipeline
- python mysqldb安装_Flask干货:访问数据库——Python数据库框架MySQLPython
- ListableBeanFactory接口
- 数据结构期末复习之交换排序
- ASP.NET 2.0中将 GridView 导出到 Excel 文件中 (转)
- mysql中有time吗_mysql中 datatime与timestamp的区别说明
- hdu-5645 DZY Loves Balls(水题)
- GooFlow .net 工作流程图 jquery 流程 mvc
- 电驴搜索服务器正在连接,电驴连接不上服务器导致无法搜索解决的方法介绍
- @Transaction注解详解
- 服务器如何释放虚拟内存,服务器如何释放虚拟内存
- 《微观经济学》 第九章(二)
- 高分子物理名词解释归纳
- vue样式中背景图片路径_vue-cli3.0全局less样式中该如何正确设置背景图片的路径?...
- 微信小程序 上传图片
- vue中的百度地图的搜索定位功能
- 线上分享丨自治时代DBA的技能库:SQL和PL/SQL的深度编程(附上期PPT和视频)-云和恩墨大讲堂201905...
- ivew的Table中使用render添加图片poptip冒泡方法
- 弘瑞3D打印:做更适合工业应用的3D打印机
- 从AFN错误码中获取错误code和信息