Nach dem Identifizieren der besten Parameter unter Verwendung einer pipeline
und GridSearchCV
, wie kann ich diesen Prozess später wieder verwenden pickle
/joblib
? Ich sehe, wie dies zu tun ist, wenn es ein einzelner Klassifikator ist ...Sklearn So speichern Sie ein aus einer Pipeline und GridSearchCV erstelltes Modell mit Joblib oder Pickle?
from sklearn.externals import joblib
joblib.dump(clf, 'filename.pkl')
Aber wie speichere ich dieses Gesamt pipeline
mit den besten Parametern nach der Durchführung und ein gridsearch
Abschluss?
Ich habe versucht:
joblib.dump(grid, 'output.pkl')
- Aber das abgeladen jeden Gridsearch Versuch (viele Dateien)joblib.dump(pipeline, 'output.pkl')
- Aber ich glaube nicht, dass die besten Parameter enthält
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'}