《LINUX學習:sklearn Pipeline使用》要點:
本文介紹了LINUX學習: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)
?
clf = svm.SVC(kernel='linear')
?
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
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)
本文永遠更新鏈接地址:
學習更多LINUX教程,請查看站內專欄,如果有LINUX疑問,可以加QQ交流《LINUX學習:sklearn Pipeline使用》。