sklearn python scikit-learn pipeline grid-search

python - Sklearn Cómo guardar un modelo creado a partir de una canalización y GridSearchCV usando Joblib o Pickle?



load pickle model (1)

from sklearn.externals import joblib joblib.dump(grid.best_estimator_, ''filename.pkl'')

Si desea volcar su objeto en un solo archivo, use:

joblib.dump(grid.best_estimator_, ''filename.pkl'', compress = 1)

Después de identificar los mejores parámetros usando un pipeline y GridSearchCV , ¿cómo selecciono / joblib este proceso para volver a usarlo más tarde? Veo cómo hacer esto cuando es un clasificador único ...

from sklearn.externals import joblib joblib.dump(clf, ''filename.pkl'')

Pero, ¿cómo puedo guardar esta pipeline general con los mejores parámetros después de realizar y completar una gridsearch ?

Lo intenté:

  • joblib.dump(grid, ''output.pkl'') - Pero eso volcó cada intento de gridsearch (muchos archivos)
  • joblib.dump(pipeline, ''output.pkl'') - Pero no creo que contenga los mejores parámetros

X_train = df[''Keyword''] y_train = df[''Ad Group''] pipeline = Pipeline([ (''tfidf'', TfidfVectorizer()), (''sgd'', SGDClassifier()) ]) parameters = {''tfidf__ngram_range'': [(1, 1), (1, 2)], ''tfidf__use_idf'': (True, False), ''tfidf__max_df'': [0.25, 0.5, 0.75, 1.0], ''tfidf__max_features'': [10, 50, 100, 250, 500, 1000, None], ''tfidf__stop_words'': (''english'', None), ''tfidf__smooth_idf'': (True, False), ''tfidf__norm'': (''l1'', ''l2'', None), } grid = GridSearchCV(pipeline, parameters, cv=2, verbose=1) grid.fit(X_train, y_train) #These were the best combination of tuning parameters discovered ##best_params = {''tfidf__max_features'': None, ''tfidf__use_idf'': False, ## ''tfidf__smooth_idf'': False, ''tfidf__ngram_range'': (1, 2), ## ''tfidf__max_df'': 1.0, ''tfidf__stop_words'': ''english'', ## ''tfidf__norm'': ''l2''}