Modellerin birleştirilmesi (Ensemble Learning) – 4 – Makine Öğrenimi
19 Haziran 2017 12 Temmuz 2017 ~ Murat Koptur
Boosting, bir çok zayıf öğreniciyi (weak learner) bir araya getirerek bir güçlü öğrenici (strong learner) oluşturmak anlamına gelir. Bir çok boosting metodunun ana fikri, tahmin edicileri ardışık olarak eğitmektir. En sık kullanılan boosting metodları, AdaBoost (Adaptive Boosting) ve Gradient Boosting metodlarıdır.
Bir tahmin edicinin, kendinden önce gelen tahmin ediciyi düzeltmesi için bir yol, kendinden önce gelen tahmin edicinin eksik öğrendiği (underfit) eğitim verilerine daha fazla dikkat etmesidir. Bu yöntem Adaboost algoritmasında kullanılır.
Bir Adaboost sınıflandırıcısı inşa etmek için, ilk olarak sınıflandırıcımızı eğitim seti üzerinde eğitiriz ve tahmin yaparız. Daha sonra, yanlış sınıflandırılan eğitim verilerinin “Göreli Ağırlığı (Relative Weight)” arttırılır. İkinci sınıflandırıcı, bu arttırılmış ağırlıklar ile eğitilir ve tekrar tahmin yapılır. Ağırlıklar yine güncellenir ve bu şekilde devam edilir.
Tüm tahmin ediciler eğitildiğinde, tahminler, tüm tahmin edicilerin doğruluk oranlarına göre ağırlıkları dikkate alınarak bagging veya pasting metodları ile yapılır.
Bahsedeceğim son ensemble metodu ise, stacking (kıs. stacked generalization). Çok basit bir fikre dayanmaktadır: tahmin edicileri birleştirirken hard voting gibi yöntemler kullanmak yerine, neden birleştirmeyi yapacak bir model eğitmiyoruz?
Yukarıdaki grafikte, yeni veri noktası üzerinde 3 farklı tahmin edici ile tahmin yapılmış (3.1, 2.7 ve 2.9) ve son tahmin edici (blender veya meta learner olarak adlandırılır) de bu tahminleri alıp, son tahmini yapmaktadır (3.0).
Bir blender eğitmek için, sık kullanılan bir yaklaşım, bir hold-out kümesi kullanmaktır. İlk olarak eğitim seti iki altkümeye ayrılır. Altkümelerden birisi tahmin edicileri eğitmek için kullanılır.
Daha sonra, tahmin ediciler ile ikinci altküme (held-out) üzerinde tahmin yapılır. Bu durumda ilk altkümedeki (hold-out) her bir değer için, elimizde 3 adet tahmin bulunur (elimizde 3 tane sınıflandırıcı olduğunu varsayıyoruz). Şimdi elimizdeki tahminleri ve gerçek değerleri kullanarak yeni bir eğitim seti oluşturuyoruz. Blender‘ı da bu eğitim seti üzerinde eğitiyoruz.
Gözetimli Öğrenme, Makine Öğrenimi içinde yayınlandı	Makine ÖğrenimiModellerin Birleştirilmesi
‹ PreviousRastgele Ormanlar(Random Forests) ile Churn Analizi
Next ›Scikit-Learn ile Stacking
“Modellerin birleştirilmesi (Ensemble Learning) – 4” için 2 yorum
Geri bildirim: Scikit-Learn ile Stacking – Makine Öğrenimi
Semih Arıcan dedi ki:
Güzel ve açıklayıcı bir yazı, elinize sağlık 🙂