精华内容
下载资源
问答
  • 机器学习 pipeline

    千次阅读 2019-09-03 09:30:17
    元学习论文总结||小样本学习论文总结 2017-2019年计算机视觉顶会文章收录 AAAI2017-2019 ...pipeline就是一个机器学习工作流 一个典型的机器学习构建包含若干个过程 1、源数据ETL 2、数据预处理 3、...

     

    元学习论文总结||小样本学习论文总结

    2017-2019年计算机视觉顶会文章收录 AAAI2017-2019 CVPR2017-2019 ECCV2018 ICCV2017-2019 ICLR2017-2019 NIPS2017-2019

     


    pipeline就是一个机器学习工作流

    一个典型的机器学习构建包含若干个过程

    • 1、源数据ETL

    • 2、数据预处理

    • 3、特征选取

    • 4、模型训练与验证

    以上四个步骤可以抽象为一个包括多个步骤的流水线式工作,从数据收集开始至输出我们需要的最终结果。因此,对以上多个步骤、进行抽象建模,简化为流水线式工作流程则存在着可行性,对利用spark进行机器学习的用户来说,流水线式机器学习比单个步骤独立建模更加高效、易用。

    管道机制在机器学习算法中得以应用的根源在于,参数集在新数据集(比如测试集)上的重复使用。

     

    管道机制实现了对全部步骤的流式化封装和管理(streaming workflows with pipelines)。注意:管道机制更像是编程技巧的创新,而非算法的创新。

    接下来我们以一个具体的例子来演示sklearn库中强大的Pipeline用法:

    1. 加载数据集

    from pandas as pdfrom sklearn.cross_validation import train_test_splitfrom sklearn.preprocessing import LabelEncoder
    
    df = 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 StandardScalerfrom sklearn.decomposition import PCAfrom sklearn.linear_model import LogisticRegressionfrom sklearn.pipeline import Pipeline
    
    pipe_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。整个流程如下图所示:

     


    作者:紫衣仙女
    链接:https://www.imooc.com/article/35451
    来源:慕课网

    展开全文
  • 构建机器学习Pipeline

    2019-04-08 14:02:36
    构建机器学习Pipeline,Architecting a Machine Learning Pipeline 。
  • 机器学习tips:什么是pipeline

    万次阅读 2018-06-11 15:54:29
    我的机器学习教程「美团」算法工程师带你入门机器学习 已经开始更新了,欢迎大家订阅~ 任何关于算法、编程、AI行业知识或博客内容的问题,可以随时扫码关注公众号「图灵的猫」,加入”学习小组“,沙雕博主在线答疑...

    任何关于算法、编程、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 LabelEncoder
    
    df = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/'
                     'breast-cancer-wisconsin/wdbc.data', header=None)
                                     # Breast Cancer Wisconsin dataset
    
    X, 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 LogisticRegression
    
    from sklearn.pipeline import Pipeline
    
    pipe_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

     

    展开全文
  • 机器学习pipeline中同时使用PCA和LDA ''' from sklearn.neighbors import KNeighborsClassifier from sklearn.pipeline import Pipeline from sklearn.model_selection import cross_val_score # import the Iris ...
  • pipeline 实现了对全部步骤的流式化封装和管理(streaming workflows with pipelines),可以很方便地使参数集在新数据集(比如测试集)上被重复使用。 Pipeline可以将许多算法模型串联起来,比如将特征提取...

    当我们对训练集应用各种预处理操作时(特征标准化、主成分分析等等), 我们都需要对测试集重复利用这些参数,以免出现数据泄露(data leakage)。

    pipeline 实现了对全部步骤的流式化封装和管理(streaming workflows with pipelines),可以很方便地使参数集在新数据集(比如测试集)上被重复使用

    Pipeline可以将许多算法模型串联起来,比如将特征提取、归一化、分类组织在一起形成一个典型的机器学习问题工作流。主要带来两点好处:

    1. 直接调用fit和predict方法来对pipeline中的所有算法模型进行训练和预测。

    2. 可以结合grid search对参数进行选择。


    1 官方文档

    pipeline英文文档pipeline中文文档

    Parameters

    • steps : 步骤:列表(list) 
      被连接的(名称,变换)元组(实现拟合/变换)的列表,按照它们被连接的顺序,最后一个对象是估计器(estimator)。
    • memory:内存参数,Instance of sklearn.external.joblib.Memory or string, optional (default=None)
    • 属性,name_steps:bunch object,具有属性访问权限的字典 
      只读属性以用户给定的名称访问任何步骤参数。键是步骤名称,值是步骤参数。或者也可以直接通过”.步骤名称”获取

    funcution

    • Pipline的方法都是执行各个学习器中对应的方法,如果该学习器没有该方法,会报错
    • 假设该Pipline共有n个学习器
    • transform,依次执行各个学习器的transform方法
    • fit,依次对前n-1个学习器执行fit和transform方法,第n个学习器(最后一个学习器)执行fit方法
    • predict,执行第n个学习器的predict方法
    • score,执行第n个学习器的score方法
    • set_params,设置第n个学习器的参数
    • get_param,获取第n个学习器的参数

    等等,详情可以参看官方文档。

    ⭐如何设定参数比便用于网格调参。

    2 举例

    这个例子是最简单的例子,在参考文献【1】【2】【3】中有许多更为复杂也更实用的例子。这个例子只是用于分析pipeline的流程。

    ⭐问题是要对数据集 Breast Cancer Wisconsin 进行分类,

    它包含 569 个样本,第一列 ID,第二列类别(M=恶性肿瘤,B=良性肿瘤),第 3-32 列是实数值的特征。

    from pandas as pd
    from sklearn.cross_validation import train_test_split
    from sklearn.preprocessing import LabelEncoder
    
    df = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/'
                     'breast-cancer-wisconsin/wdbc.data', header=None)
                                     # Breast Cancer Wisconsin dataset
    
    X, y = df.values[:, 2:], df.values[:, 1]
    
    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)
    

    我们要用 Pipeline 对训练集和测试集进行如下操作:

    • 先用 StandardScaler 对数据集每一列做标准化处理,(是 transformer)
    • 再用 PCA 将原始的 30 维度特征压缩的 2 维度,(是 transformer)
    • 最后再用模型 LogisticRegression。(是 Estimator)

    调用 Pipeline 时,输入由元组构成的列表,每个元组第一个值为变量名,元组第二个元素是 sklearn 中的 transformer 或 Estimator。

    注意中间每一步是 transformer,即它们必须包含 fit 和 transform 方法,或者 fit_transform。 
    最后一步是一个 Estimator,即最后一步模型要有 fit 方法,可以没有 transform 方法。

    然后用 Pipeline.fit对训练集进行训练,pipe_lr.fit(X_train, y_train) 
    再直接用 Pipeline.score 对测试集进行预测并评分 pipe_lr.score(X_test, y_test)

    from sklearn.preprocessing import StandardScaler
    from sklearn.decomposition import PCA
    from sklearn.linear_model import LogisticRegression
    
    from sklearn.pipeline import Pipeline
    
    pipe_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 的工作方式:

    当管道 Pipeline 执行 fit 方法时, 
    首先 StandardScaler 执行 fit 和 transform 方法, 
    然后将转换后的数据输入给 PCA, 
    PCA 同样执行 fit 和 transform 方法, 
    再将数据输入给 LogisticRegression,进行训练。

    注意中间每一步是transformer,即它们必须包含 fit 和 transform 方法,或者fit_transform

    最后一步是一个Estimator,即最后一步模型要有 fit 方法,可以没有 transform 方法。

    ⭐当然,还可以用来选择特征,也可以应用 K-fold cross validation,详见参考文献【5】。


    3 参考文献

    【1】 Managing Machine Learning Workflows with Scikit-learn Pipelines Part 2: Integrating Grid Search

    【2】Managing Machine Learning Workflows with Scikit-learn Pipelines Part 2: Integrating Grid Search

    【3】Managing Machine Learning Workflows with Scikit-learn Pipelines Part 3: Multiple Models, Pipelines, and Grid Searches

    【4】Using AutoML to Generate Machine Learning Pipelines with TPOT

    【5】Automate Machine Learning Workflows with Pipelines in Python and scikit-learn

    【6】用 Pipeline 将训练集参数重复应用到测试集

    展开全文
  • 本文和大家分享的主要是机器学习中 sklearn中pipeline相关内容,一起来看看吧,希望对大家学习机器学习有所帮助。 如下图所示,利用pipeline我们可以方便的减少代码量同时让机器学习的流程变得直观,例如我们需要...

    本文和大家分享的主要是机器学习中 sklearnpipeline相关内容,一起来看看吧,希望对大家学习机器学习有所帮助。

      如图所示,利用pipeline我们可以方便的减少代码量同时让机器学习的流程变得直观,

    例如我们需要做如下操作,容易看出,训练测试集重复了代码,

      vect = CountVectorizer()tfidf = TfidfTransformer()clf = SGDClassifier()

      vX = vect.fit_transform(Xtrain)tfidfX = tfidf.fit_transform(vX)predicted = clf.fit_predict(tfidfX)

      # Now evaluate all steps on test setvX = vect.fit_transform(Xtest)tfidfX = tfidf.fit_transform(vX)predicted = clf.fit_predict(tfidfX)

      利用pipeline,上面代码可以抽象为,

      pipeline = Pipeline([

      ('vect', CountVectorizer()),

      ('tfidf', TfidfTransformer()),

      ('clf', SGDClassifier()),

      ])

      predicted = pipeline.fit(Xtrain).predict(Xtrain)

      # Now evaluate all steps on test set

      predicted = pipeline.predict(Xtest)

      注意,pipeline最后一步如果有predict()方法我们才可以对pipeline使用fit_predict(),同理,最后一步如果有transform()方法我们才可以对pipeline使用fit_transform()方法。

      使用pipelinecross validation

      看如下案例,即先对输入手写数字的数据进行PCA降维,再通过逻辑回归预测标签。其中我们通过pipeline

      PCA的降维维数n_components和逻辑回归的正则项C大小做交叉验证,主要步骤有:

      1. 依次实例化各成分对象如 pca = decomposition.PCA()

      2. (name, object)tuble为元素组装pipeline如 Pipeline(steps=[('pca', pca), ('logistic', logistic)])

      3. 初始化CV参数如 n_components = [20, 40, 64]

      4. 实例化CV对象如 estimator = GridSearchCV(pipe, dict(pca__n_components=n_components, logistic__C=Cs)) ,其中注意参数的传递方式,即keypipeline元素名+函数参数

      import numpy as npimport matplotlib.pyplot as pltfrom sklearn import linear_model, decomposition, datasetsfrom sklearn.pipeline import Pipelinefrom sklearn.model_selection import GridSearchCV

      logistic = linear_model.LogisticRegression()

      pca = decomposition.PCA()

      pipe = Pipeline(steps=[('pca', pca), ('logistic', logistic)])

      digits = datasets.load_digits()

      X_digits = digits.data

      y_digits = digits.target

      # Prediction

      n_components = [20, 40, 64]

      Cs = np.logspace(-4, 4, 3)

      pca.fit(X_digits)

      estimator = GridSearchCV(pipe,

      dict(pca__n_components=n_components, logistic__C=Cs))

      estimator.fit(X_digits, y_digits)

      plt.figure(1, figsize=(4, 3))

      plt.clf()

      plt.axes([.2, .2, .7, .7])

      plt.plot(pca.explained_variance_, linewidth=2)

      plt.axis('tight')

      plt.xlabel('n_components')

      plt.ylabel('explained_variance_')

      plt.axvline(

      estimator.best_estimator_.named_steps['pca'].n_components,

      linestyle=':',

      label='n_components chosen')

      plt.legend(prop=dict(size=12))

      plt.show()

     

    来源:网络


    展开全文
  • Python机器学习实践

    千次阅读 2019-10-15 21:14:08
    前面几篇博文已经整理了Python做数据分析和建模以及机器学习基础知识。 这篇博文主要分享Python做数据分析和建模的实践案例应用。 分为两部分: 1、Python机器学习实践案例的算法总结。 见博文下方的算法总结...
  • Spark机器学习Pipeline(Python)

    千次阅读 2019-04-22 10:03:48
    转自Spark机器学习Pipeline(Python) 机器学习库(MLlib)指南 MLlib是Spark的机器学习(ML)库。 它的目标是使实用的机器学习可扩展和容易。它提供了一个高水平的工具,如: ML算法:常见的学习算法,如分类,...
  • Spark MLib机器学习流水线Pipeline DataFrame作为基本的数据抽象。 Transform:转化器,传入DataFrame转换成新的DataFrame。 Estimator:评估器,fit训练得到模型。 Pipeline:流水线,多步骤组合。 构建Pipeline: ...
  • 机器学习-PipeLine初识

    2020-02-21 14:03:14
    学习: A Scikit_Learn pipeline can be regarded as a meta-estimator or several tansformers and estimator can also be wrappered around together. If we call the fit method of Pipeline, the data will be ...
  • Pipeline是eonum产品和服务使用的模块化机器学习库。 使用模块化设计原则,可以构建和评估适合当前问题的数据管道。 数据管道由读取器,变压器,分类器,回归器,归一化器,参数优化器,输出生成器和其他模块组成...
  • 参考:[1]林大贵.Python+Spark2.0+Hadoop机器学习与大数据实战[M].博硕文化股份有限公司 名词说明 DataFrame:Sparl ML机器学习API处理的数据格式是DF,我们必须使用DF存储数据、处理数据、测试数据,最后预测结果也...
  • 使用 Spark ML Pipeline 进行机器学习

    千次阅读 2018-02-06 13:20:49
    Spark ML Pipeline 的引入,是受到scikit-learn的启发,虽然 MLlib 已经足够简单实用,但如果目标数据集结构复杂,需要多次处理...所以,一个可用于构建复杂机器学习工作流应用的新库已经出现了,它就是 Spark 1.2 ...
  • 简单应用 from sklearn.preprocessing import StandardScaler, ...from sklearn.pipeline import Pipeline #就是把几个数据处理的操作组装起来,按顺序走 pl_svm = Pipeline([ ('normal',Normalizer()), #归一化 .
  • 周末补一下这星期机器学习的知识点????欢迎 别忘了点赞关注噢???????????? 文章目录吹个水????什么是管道(Pipeline)?????看案例????参数????基于管道(pipeline)的模型观察???? 吹个水???? 什么是管道(Pipeline)?...
  • 其中Pipeline是Kubeflow的一个核心模块,可以定义机器学习各个步骤的工作流,按照编排来进行执行。 我在学习Kubeflow的过程,发现网上关于Pipeline方面的介绍比较少,官网的例子则比较晦涩,而且大都是要结合GCP...
  • 那么这里还有两个数据处理和sklearn应用的小知识点咱们还没有讲,但是在实践却会经常要用到的,那就是交叉验证cross_validation和Pipeline。cross_validation是保证了咱们的模型不受数据分布的影响,因为有些...
  • 使用 ML Pipeline 构建机器学习工作流

    千次阅读 2017-08-16 20:34:59
    一个典型的机器学习机器学习过程通常会包含:源数据 ETL,数据预处理,指标提取,模型训练与交叉验证,新数据预测等。我们可以看到这是一个包含多个步骤的流水线式工作,也就是说数据从收集开始,要
  • sklearn 机器学习 Pipeline 模板

    千次阅读 2020-07-29 21:54:40
    文章目录1. 导入工具包2. 读取数据3. 数字特征、文字特征分离4. 数据处理Pipeline5.... 一个完整的机器学习项目(加州房价预测) 1. 导入工具包 import numpy as np import pandas as pd %matplotlib inline
  • sklearn中Pipeline包的用法 from sklearn.preprocessing import StandardScaler from sklearn.decomposition import PCA from sklearn.linear_model import LogisticRegression from sklearn.pipeline import ...
  • 可扩展的机器学习管道,用于探针特异性预测 用于探针设计的交互式Shiny Web应用程序 该存储库包含用于机器学习管道的Snakemake工作流程,以及为Web应用程序上尚未托管的其他基因组设计探针所需的完整软件堆栈。 ...
  • 在本教程,你将学习如何使用pipeline来清理你的建模代码。 1、介绍 Pipeline是一种简单的方法,能让你的数据预处理和建模步骤一步到位。 很多数据科学家没有使用pipeline来建模,但pipeline有很多重要好处。包含:...
  • 机器学习pipeline对大型企业来说,是一个比不可少的环境,如果pipeline做的不好,可能会影响到整个公司的数据分析的工作效率。为此,这里汇总一下机器学习pipeline业务方案。对各个方案的介绍,后续慢慢将其完善。 ...
  • 任何有序的操作有可以看做pipeline,例如工厂流水线,对于机器学习模型来说,这就是数据流水线。 是指数据通过管道的每一个节点,结果除了之后,继续流向下游。对于我们这个例子,数据是有空值,我们会有一个...
  • 它要求我们建立机器学习管道,以根据发送方实时传达的需求对紧急消息进行分类。 特定的机器模型是自然语言处理(NLP)模型。 该项目分为三个主要部分: 构建ETL管道以提取数据,清理数据并将其存储到SQlite数据库...
  • 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:作者丨清华大学软件学院 袁秀龙(已授权) 来源丨https://zhuanlan.zhihu.com/p/353373735 AI博士笔记系列推荐 周志华《机器学习》手推笔记正式开源!...
  • 一:使用pipeline进行数据预处理,模型构建 from sklearn.pipeline import Pipeline pipe = Pipeline([("scaler", MinMaxScaler()), ("svm", SVC())])#有两个步骤 pipe.fit(X_train, y_train) #自动对数据进行...
  • 端到端的机器学习管道将: 提取原始文本数据。 将原始文本数据处理为段落向量 将受过训练的有监督学习分类器应用于段落向量,以将原始文本标记为fake或not_fake fake 知识 比较当今使用的词嵌入应用程序的不同方法...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 19,630
精华内容 7,852
关键字:

机器学习中的pipeline