python中sklearn的pipeline模块实例详解

 更新时间:2020-05-21 10:56:49   作者:佚名   我要评论(0)

最近在看《深度学习:基于Keras的Python实践(魏贞原)》这本书,书中8.3创建了一个Scikit-Learn的Pipeline,首先标准化数据集,然后创建和评估基线神经网络模型,代

最近在看《深度学习:基于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:

在这里插入图片描述

函数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 pipeline模块内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

  • python使用pipeline批量读写redis的方法
  • Python:Scrapy框架中Item Pipeline组件使用详解
  • 介绍Python的Django框架中的静态资源管理器django-pipeline
  • python使用sklearn实现决策树的方法示例
  • Python使用sklearn库实现的各种分类算法简单应用小结
  • Python使用sklearn实现的各种回归算法示例
  • Python sklearn KFold 生成交叉验证数据集的方法

相关文章

  • python中sklearn的pipeline模块实例详解

    python中sklearn的pipeline模块实例详解

    最近在看《深度学习:基于Keras的Python实践(魏贞原)》这本书,书中8.3创建了一个Scikit-Learn的Pipeline,首先标准化数据集,然后创建和评估基线神经网络模型,代
    2020-05-21
  • Java实现对象按照其属性排序的两种方法示例

    Java实现对象按照其属性排序的两种方法示例

    本文实例讲述了Java实现对象按照其属性排序的两种方法。分享给大家供大家参考,具体如下: 有时候需要对对象列表或数组进行排序,下面提供两种简单方式: 方法一:将
    2020-05-21
  • JAVA 多态操作----父类与子类转换问题实例分析

    JAVA 多态操作----父类与子类转换问题实例分析

    本文实例讲述了JAVA 多态操作----父类与子类转换问题。分享给大家供大家参考,具体如下: JAVA语言中, 对象变量是多态的 每个子类对象都算是父类对象(子类对象可以当
    2020-05-21
  • vue+Element中table表格实现可编辑(select下拉框)

    vue+Element中table表格实现可编辑(select下拉框)

    最近在工作中遇到一个问题,需要在表格中实现数据可编辑状态,具体情况是需要在单元格里加入下拉框;并且每个下拉框的数组数据是不一样的,具体是根据当前行前面数据
    2020-05-21
  • python 解决Fatal error in launcher:错误问题

    python 解决Fatal error in launcher:错误问题

    python终端用pip list出现这个错误Fatal error in launcher: 只要终端用到pip的东西,都在前面加python -m,比如python -m pip list 好了,完美解决! 补充知识:p
    2020-05-21
  • Python中的xlrd模块使用原理解析

    Python中的xlrd模块使用原理解析

    on里面的xlrd模块详解(一) - 疯了的小蜗 - 博客园【内容】:> 那我就一下面积个问题对xlrd模块进行学习一下: 什么是xlrd模块? 为什么使用xlrd模块? 1.什
    2020-05-21
  • django的403/404/500错误自定义页面的配置方式

    django的403/404/500错误自定义页面的配置方式

    要实现标题的功能,总共分四步: 1.创建html错误页 2.配置settings 3.编写视图 4.配置url 我的开发环境: django1.10.3 python2.7.12 前期工作 创建项目及app $ dj
    2020-05-21
  • Java IO字符流缓冲区实现原理解析

    Java IO字符流缓冲区实现原理解析

    字符流的缓冲区 缓冲区的出现,提高了对数据的读写效率,对应的类:BufferedWriter,BufferedReader 缓冲区要结合流才可以使用,缓冲区是在流的基础上对流的功能进行
    2020-05-21
  • Android 开发使用PopupWindow实现弹出警告框的复用类示例

    Android 开发使用PopupWindow实现弹出警告框的复用类示例

    本文实例讲述了Android 开发使用PopupWindow实现弹出警告框的复用类。分享给大家供大家参考,具体如下: Android开发中相信下图所示界面大家都不陌生,该种弹出框的
    2020-05-21
  • 浅谈React中组件逻辑复用的那些事儿

    浅谈React中组件逻辑复用的那些事儿

    基本每个开发者都需要考虑逻辑复用的问题,否则你的项目中将充斥着大量的重复代码。那么 React 是怎么复用组件逻辑的呢?本文将一一介绍 React 复用组件逻辑的几种方
    2020-05-21

最新评论