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''}