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 Pipelinefrom sklearn.svm import SVCfrom sklearn.decomposition import PCAestimators = [(’reduce_dim’, PCA()), (’clf’, SVC())]pipe = Pipeline(estimators)pipe
output:
函数make_pipeline是构建pipelines的简写;它接受不同数量的估计器,并返回一个pipeline。它不需要也不允许命名估计器。而是将其名称自动设置为其类型的小写字母:
from sklearn.pipeline import make_pipelinefrom sklearn.naive_bayes import MultinomialNBfrom sklearn.preprocessing import Binarizermake_pipeline(Binarizer(), MultinomialNB())
output:
总结
到此这篇关于python中sklearn的pipeline模块的文章就介绍到这了,更多相关python pipeline模块内容请搜索好吧啦网以前的文章或继续浏览下面的相关文章希望大家以后多多支持好吧啦网!
相关文章:
1. IDEA的Mybatis Generator驼峰配置问题2. javascript设计模式 ? 建造者模式原理与应用实例分析3. 一篇文章带你了解JavaScript-对象4. Express 框架中使用 EJS 模板引擎并结合 silly-datetime 库进行日期格式化的实现方法5. Java构建JDBC应用程序的实例操作6. Python使用oslo.vmware管理ESXI虚拟机的示例参考7. IntelliJ Idea2017如何修改缓存文件的路径8. IntelliJ IDEA设置条件断点的方法步骤9. Jsp中request的3个基础实践10. 浅谈SpringMVC jsp前台获取参数的方式 EL表达式
