Şu anda Python ve Scikit ile sınıflandırma amacıyla öğrenmek için çalışıyorum ve GridSearch etrafında biraz okuma yapıyorum, bu en iyi sonuçları elde etmek için benim tahmin parametreleri optimize etmek için harika bir yol olduğunu düşündüm.
Benim metodolojim şudur:
- Verilerimi eğitim / teste böl.
- Tahmincilerimi (Rastgele Orman, Gradient Boost, diğerleri arasında SVC) eğitmek ve test etmek için 5Fold Cross doğrulaması ile GridSearch'ü kullanın.
- Daha sonra sınıflandırmaları tahmin etmek ve bunları gerçek sınıf etiketleriyle karşılaştırmak için test setimi kullanarak Hassasiyet, Geri Çağırma, FMeasure ve Matthews Korelasyon Katsayısı gibi her bir tahmin edicimdeki metrikleri hesaplarım.
Bu aşamada garip davranışlar görüyorum ve nasıl ilerleyeceğimden emin değilim. .Best_estimator_'ı GridSearch'ten alıp bunu grid aramasından 'optimal' çıktı olarak mı kullanırım ve bu tahmin ediciyi kullanarak tahmin gerçekleştirir miyim? Bunu yaparsam, 3. aşama metriklerinin genellikle tüm eğitim verileri üzerinde eğitim alıp test setinde test ettiğimden çok daha düşük olduğunu görürüm. Yoksa çıkış GridSearchCV nesnesini yeni tahminci olarak mı alabilirim? Bunu yaparsam, aşama 3 metriklerim için daha iyi puanlar alırım, ancak amaçlanan sınıflandırıcı (örneğin rastgele bir orman) yerine bir GridSearchCV nesnesi kullanarak garip görünüyor ...
EDIT: Benim sorum döndürülen GridSearchCV nesne ve .best_estimator_ özniteliği arasındaki fark nedir? Daha fazla metrik hesaplamak için bunlardan hangisini kullanmalıyım? Bu çıktıyı normal bir sınıflandırıcı gibi kullanabilir miyim (örneğin tahmin kullanarak), yoksa bunu nasıl kullanmalıyım?
refit=False
oclf.fit
zaman en iyi sınıflandırıcı ile yapılmayacak mı?