python中sklearn模块_python中sklearn的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:

dbb6878ee09af4f2749a6b2657fb298a.png

函数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:

37c1faa710092789b3fe278f92dc1af7.png

总结

到此这篇关于python中sklearn的pipeline模块的文章就介绍到这了,更多相关python pipeline模块内容请搜索聚米学院以前的文章或继续浏览下面的相关文章希望大家以后多多支持聚米学院!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值