2013-05-08 9 views
7

Czy można dostroić parametry zagnieżdżonych potoków w nauce scikit? Np .:Jak dostroić parametry zagnieżdżonych potoków przez GridSearchCV w scikit-learn?

svm = Pipeline([ 
    ('chi2', SelectKBest(chi2)), 
    ('cls', LinearSVC(class_weight='auto')) 
]) 

classifier = Pipeline([ 
    ('vectorizer', TfIdfVectorizer()), 
    ('ova_svm', OneVsRestClassifier(svm)) 
}) 

parameters = ? 

GridSearchCV(classifier, parameters) 

Jeśli nie można tego zrobić bezpośrednio, jakie może być obejście tego problemu?

Odpowiedz

8

scikit-learn ma zapis podwójnego podkreślenia dla tego, as exemplified here. Działa rekurencyjnie i rozciąga się OneVsRestClassifier, z zastrzeżeniem, że estymator bazowego musi być wyraźnie adresowane jako __estimator:

parameters = {'ova_svm__estimator__cls__C': [1, 10, 100], 
       'ova_svm__estimator__chi2_k': [200, 500, 1000]} 
5

Dla estymatora, które zostały utworzone można uzyskać listę parametrów z ich znaczników w następujący sposób.

import pprint as pp 

pp.pprint(sorted(classifier.get_params().keys())) 

[ 'ova_svm', 'ova_svm__estimator', 'ova_svm__estimator__chi2' 'ova_svm__estimator__chi2__k' 'ova_svm__estimator__chi2__score_func', 'ova_svm__estimator__cls' 'ova_svm__estimator__cls__C' 'ova_svm__estimator__cls__class_weight' 'ova_svm__estimator__cls__dual' , 'ova_svm__estimator__cls__fit_intercept', 'ova_svm__estimator__cls__intercept_scaling', 'ova_svm__estimator__cls__loss', 'ova_svm__estimator__cls__max_iter', „ova_svm__estimator__c ls__multi_class' 'ova_svm__estimator__cls__penalty' 'ova_svm__estimator__cls__random_state' 'ova_svm__estimator__cls__tol', 'ova_svm__estimator__cls__verbose', 'ova_svm__estimator__steps', 'ova_svm__n_jobs', 'stopnie' 'Vectorizer', 'vectorizer__analyzer', 'vectorizer__binary' ' vectorizer__decode_error ' 'vectorizer__dtype' 'vectorizer__encoding', 'vectorizer__input', 'vectorizer__lowercase', 'vectorizer__max_df' 'vectorizer__max_features', 'vectorizer__min_df', 'vectorizer__ngram_range', 'vectorizer__norm', 'vectorizer__preprocessor',' vectorizer__smooth_idf ', ' vectorizer__stop_words ',' vectorizer__strip _accents', 'vectorizer__sublinear_tf', 'vectorizer__token_pattern', 'vectorizer__tokenizer', 'vectorizer__use_idf', 'vectorizer__vocabulary']

Z tej listy można ustawić parametry, które chcesz zrobić GridSearchCV ON.

Powiązane problemy