sklearn sensitivity scores gridsearchcv example cross_val_score scikit-learn

scikit-learn - scores - sensitivity sklearn



¿Cómo ajustar los parámetros de las tuberías anidadas mediante GridSearchCV en scikit-learn? (2)

scikit-learn tiene una doble notación de guión bajo para esto, como se ejemplifica aquí . Funciona de forma recursiva y se extiende a OneVsRestClassifier , con la advertencia de que el estimador subyacente debe abordarse explícitamente como __estimator :

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

¿Es posible ajustar los parámetros de las tuberías anidadas en scikit-learn? P.ej:

svm = Pipeline([ (''chi2'', SelectKBest(chi2)), (''cls'', LinearSVC(class_weight=''auto'')) ]) classifier = Pipeline([ (''vectorizer'', TfIdfVectorizer()), (''ova_svm'', OneVsRestClassifier(svm)) }) parameters = ? GridSearchCV(classifier, parameters)

Si no es posible hacer esto directamente, ¿qué podría ser una solución?


Para el estimador que ha creado, puede obtener la lista de parámetros con sus etiquetas de la siguiente manera.

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__cls__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__n_jobs ova_svm__estimator__steps'', ''pasos'', ''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'', ''vectorize r__smooth_idf '','' vectorizer__stop_words '','' vectorizer__strip_accents '','' vectorizer__sublinear_tf '','' vectorizer__token_pattern '','' vectorizer__tokenizer '','' vectorizer__use_idf '','' vectorizer__vocabulary '']

Desde esta lista, puede establecer los parámetros sobre los que desea hacer un GridSearchCV.