内容简介:sklearn Pipeline使用
简介
Pipeline按顺序构建一系列转换和一个模型,最后的一步是模型。Pipeline中间的步骤必须是转换过程,它们必须包含fit和transform方法。最后一步模型只要有fit方法。
Pipeline的目的是能组合好几个步骤,当设置不同参数的时候,可以在一起做交叉验证。可以通过【pipeline的名称+ “__” + 参数名称】( 注意是两个下划线) 的方式设置多个步骤的参数。
参数
名称 | 类型 | 说明 |
---|---|---|
steps | list | 包含(name,transform)元组的list类型,按照元组的顺序形成一个链,最后一步是模型。 |
named_steps | dict | 只读的属性,用户通过设置的名称可以读取相应步骤的参数,keys是步骤名称,values是步骤参数 |
上手使用
from sklearn import svm from sklearn.datasets import samples_generator from sklearn.feature_selection import SelectKBest from sklearn.feature_selection import f_regression from sklearn.pipeline import Pipeline
产生一些测试数据
X, y = samples_generator.make_classification(n_informative=5, n_redundant=0, random_state=42)
选择特征
# ANOVA SVM-C anova_filter = SelectKBest(f_regression, k=5)
SVM模型
clf = svm.SVC(kernel='linear')
构建pipeline
anova_svm = Pipeline([('anova', anova_filter), ('svc', clf)])
模型有两步,一步是最特征选择,一步是模型
设置参数
anova_svm.set_params(anova__k=10, svc__C=.1)
Pipeline(steps=[('anova', SelectKBest(k=10, score_func=<function f_regression at 0x4a0f0c8>)), ('svc', SVC(C=0.1, cache_size=200, class_weight=None, coef0=0.0, decision_function_shape=None, degree=3, gamma='auto', kernel='linear', max_iter=-1, probability=False, random_state=None, shrinking=True, tol=0.001, verbose=False))])
训练模型
anova_svm.fit(X,y)
Pipeline(steps=[('anova', SelectKBest(k=10, score_func=<function f_regression at 0x4a0f0c8>)), ('svc', SVC(C=0.1, cache_size=200, class_weight=None, coef0=0.0, decision_function_shape=None, degree=3, gamma='auto', kernel='linear', max_iter=-1, probability=False, random_state=None, shrinking=True, tol=0.001, verbose=False))])
预测结果
prediction = anova_svm.predict(X) anova_svm.score(X,y)
0.77000000000000002
查看pipeline里的参数
anova_svm.named_steps['anova']
SelectKBest(k=10, score_func=<function f_regression at 0x4a0f0c8>)
anova_svm.named_steps['svc']
SVC(C=0.1, cache_size=200, class_weight=None, coef0=0.0, decision_function_shape=None, degree=3, gamma='auto', kernel='linear', max_iter=-1, probability=False, random_state=None, shrinking=True, tol=0.001, verbose=False)
anova_svm.named_steps['anova'].get_support()
array([ True, True, True, False, False, True, False, True, True, True, False, False, True, False, True, False, False, False, False, True], dtype=bool)
本文永久更新链接地址 : http://www.linuxidc.com/Linux/2017-06/144939.htm
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- RecyclerView使用指南(一)—— 基本使用
- 如何使用Meteorjs使用URL参数
- 使用 defer 还是不使用 defer?
- 使用 Typescript 加强 Vuex 使用体验
- [译] 何时使用 Rust?何时使用 Go?
- UDP协议的正确使用场合(谨慎使用)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
正当法律程序简史
(美)约翰·V.奥尔特 / 杨明成、陈霜玲 / 商务印书馆 / 2006-8 / 14.00元
本书的主题——正当法律程序,是英美法的核心概念,它使诸如法治、经济自由、个人自治以及免于政府专断行为的侵害等价值观念具体化,因而是法学领域一个永恒的主题,数百年以来一直是法学家、法官及律师关注的重点。本书以极为简洁、精确的语言总结了五百年法律发展的恢弘历史,为人们描述了正当法律程序观念发展演变的清晰轨迹。而沿着这条轨迹,人们可以准确地了解正当法律程序这一重要概念所包含的广泛的问题。 作为一本......一起来看看 《正当法律程序简史》 这本书的介绍吧!