2015-12-07 20 views
15

pipeline ve GridSearchCV kullanarak en iyi parametreleri belirledikten sonra, bu işlemi daha sonra yeniden kullanmak için pickle/joblib nasıl yapabilirim? Ben ... tek sınıflandırıcı olduğunda bunun nasılSklearn Pipeline ve GridSearchCV'den Oluşturulmuş Model Nasıl Kaydedilir Joblib veya Pickle?

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

bkz Ama nasıl performans ve gridsearch tamamladıktan sonra iyi parametreleri ile bu genel pipeline kaydedebilirim?

Denedim:

  • joblib.dump(grid, 'output.pkl') - Ama bu her gridsearch girişimi (birçok dosya)
  • joblib.dump(pipeline, 'output.pkl') dampingli - Ama bu iyi parametreleri içeren sanmıyorum

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

cevap

20

Eğer bir dosya halinde nesneyi dökümü istiyorsanız- kullanım:

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