7

Ben Izgara Arama CV ile benim KNN tahmincisi en iyi hyperparameters bir dizi bulduk: Zarif bir şekilde Sklearn'ın GridseachCV'sinin en iyi parametreleri başka bir modele nasıl geçilir?

>>> knn_gridsearch_model.best_params_ 
{'algorithm': 'auto', 'metric': 'manhattan', 'n_neighbors': 3} 

Buraya kadar her şey iyi. Son tahmincimi bu yeni bulunan parametrelerle eğitmek istiyorum. Yukarıdaki hiperparametre direncini doğrudan beslemenin bir yolu var mı? Denedim bu: gerçekten

>>> knn_model 
KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski', 
      metric_params=None, n_jobs=1, 
      n_neighbors={'n_neighbors': 3, 'metric': 'manhattan', 'algorithm': 'auto'}, 
      p=2, weights='uniform') 

Hayal kırıklığı:

>>> new_knn_model = KNeighborsClassifier(knn_gridsearch_model.best_params_) 

ancak bunun yerine ümit sonuç new_knn_model sadece modelin ilk parametre olarak bütün dicti var ve varsayılan olarak kalan olanları bıraktı

.

+2

'dict' ile' ** knn_gridsearch_model.best_params_' – taras

cevap

11

Sen şöyle yapabilirsiniz: @taras önerdiği gibi

new_knn_model = KNeighborsClassifier() 
new_knn_model.set_params(**knn_gridsearch_model.best_params_) 

Ya da sadece doğrudan paketten: bitirmek sonra arada

new_knn_model = KNeighborsClassifier(**knn_gridsearch_model.best_params_) 

, ızgara araması, ızgara arama nesnesi aslında En iyi parametreleri (varsayılan olarak) tutar, böylece nesneyi kullanabilirsiniz.

my_model = KNeighborsClassifier(**grid.best_params_) 

iyidir: Alternatif olarak, aynı zamanda sadece grid.best_parameters ve kullanma gibi unpacking tarafından yeni bir model bunları geçmesini işaret etmek istiyorum

gs.best_estimator_ 
+0

'un paketini açmanız gerekmektedir. Teşekkür ederiz. Son ipucunuza gelince, en iyi parametreleri geri dönüştürmem gerekiyor çünkü sonunda kombine tren + test setlerinde yeni bir model yetiştirmek istiyorum. – Hendrik

+0

Bunu son cevabı kullanarak yapıyorum, 'gs.best_estimator_', buradaki üçün en iyi yaklaşımı olarak tavsiye ediyorum. –

0

yoluyla en iyi parametreleri ile sınıflandırıcı erişebilecek ve ben şahsen ben çok kullandık.
Ancak, belgelerinizde here numaralı belgede de görebileceğiniz gibi, hedefiniz bu best_parameters kullanarak bir şey tahmin etmekse, varsayılan olarak bu en iyi parametreleri kullanacak olan grid.predict yöntemini doğrudan kullanabilirsiniz.

örnek: bu yararlı oldu

y_pred = grid.predict(X_test) 

Umut.