Professional Documents
Culture Documents
(Ensemble Learning)
Kolektif Öğrenme
• Kolektif öğrenme, bir çok zayıf öğreniciyi (weak learners/ models)
daha güçlü öğreniciler oluşturmak (model tahminleme gücünü
arttırmak) amacıyla bir araya getiren eğiticili öğrenme tekniğidir.
• Eğer temel öğreniciler, düşük korelasyona sahipse kollektif model
daha iyi çalışır.
Kolektif Öğrenmede Hata
(Variance vs. Bias)
• Herhangi bir model’deki hata matematiksel olarak 3
bileşenle ifade edilebilir.
• Ortalama(Averaging): regresyon
problemlerinde model tahminlerinin
ortalaması alınır.
• Çoğunluk Oylaması(Majority vote):
sınıflandırma problemlerinde
modeller tarafından en çok oylanan
tahmin sonucu seçilir.
• Ağırlıklı Ortalama(Weighted
average): model çıktılarının sonuçları,
öenlerini belirleyen bir ağırlık oranıyla
çarpılarak çoklu model sonucu
hesaplanır.
Yararları?
Avantajları
• Daha iyi bir tahminleme (Yüksek başarım oranı)
• Daha istikrarlı/kararlı modeller
• Çoklu modellerin ortak kararları diğer tekli modellere göre daha az
gürültülüdür.
• DezAvantajları
• Aşırı öğrenmeye sebep olabilirler.
• Kollektif teknikleri modelin yorumlanmasını düşürür
• Model oluşturmak çok zaman alır, real time uygulamalarda önerilmez
Ağaç tabanlı topluluk algoritmaları
• Topluluk algoritmaları ve özellikle zayıf öğrenenler olarak karar ağaçlarını kullananların diğer
algoritmalara kıyasla birçok avantajı vardır:
• Algoritmalarının anlaşılması ve görselleştirilmesi kolaydır: Bir karar ağacını tanımlamak ve çizmek, Destek
Vektör Makinelerini tanımlamaktan tartışmasız daha kolaydır.
• Parametrik değildirler ve verilerin belirli bir dağıtımı takip etmesini gerektirmez veya varsaymazlar: bu, verileri
normal şekilde dağıtmak için dönüştürürken size zaman kazandıracaktır.
• Karma veri türlerini işleyebilirler
• Özelliklerin çoklu doğrusallığı(multi-collinearity), modelin doğruluğunu ve tahmin performansını etkilemez:
özelliklerin aralarındaki korelasyonları ve etkileşimleri azaltmak için kaldırılmasına veya başka şekilde
tasarlanmasına gerek yoktur.
• Aşırı uydurmaya karşı dayanıklıdırlar: çünkü yetersiz uyan (yüksek önyargı) birçok zayıf öğrenen kullanırlar ve
bu tahminleri daha güçlü bir öğrenenle birleştirirler, modelin aşırı uymasını (varyansını) azaltırlar.
• Aykırı değerlere ve gürültüye karşı nispeten sağlamdırlar: genel olarak gürültülü verileri (ör. Hedef üzerinde
etkisi olmayan özellikler) veya aykırı değerleri (ör. Uç değerler) iyi işleyecek ve genel performans üzerinde çok
az etkisi olacaktır.
• Girişlerin ölçeklenmesine gerek yoktur: MinMaxScaler veya StandardScaler ile özelliklerin ön işlemesi ve
dönüştürülmesi gerekli değildir
• Hesaplama açısından nispeten ucuzdurlar: Destek Vektör Makineleri veya sinir ağları gibi algoritmalara kıyasla
daha hızlıdırlar
• Genellikle zayıf öğrenenlerden çok daha iyi performans gösterirler: Karar ağaçları, hızlandırma ve torbalama
algoritmalarına kıyasla yüksek varyansları / aşırı uyumları nedeniyle daha az doğru olacaktır.
Boosting
• Boosting'in genel fikri, diğer tüm topluluk algoritmalarında olduğu
gibi, birkaç zayıf öğrenciyi daha güçlü bir şekilde birleştirmektir. Zayıf
bir öğrenci, rastgele olduğundan biraz daha iyi tahmin eden bir
öğrenme algoritmasına atıfta bulunur. Boosting algoritmalarının
temeli, öngörücüleri sırayla denemektir; burada sonraki her model, bir
önceki modelin hatalarını düzeltmeye çalışır.
• Bunun anlamı:
• Ağaçlar sırayla büyüyor
• Her ağaç, önceden yetiştirilen ağaçlardan alınan bilgiler kullanılarak
yetiştirilir.
• Torbalamada olduğu gibi önyükleme örneklemesini içermez
Zayıf öğrencilerin aileleri, aralarında minimum bir korelasyona
sahip olmalıdır.
Adaptive Boosting
• Adaptive Boosting veya en yaygın olarak bilinen AdaBoost algoritması ilk
olarak 1995 yılında Freund & Schapire tarafından tanıtıldı. Karar ağaçlarını
zayıf öğrenenler olarak sırayla büyütmek ve yanlış tahmin edilen örnekleri
her bir tahmin turundan sonra onlara daha büyük bir ağırlık atayarak
cezalandırmaktır. Bu şekilde, algoritma önceki hatalardan ders alıyor. Nihai
tahmin, ağırlıklı çoğunluk oyu (veya regresyon sorunları durumunda ağırlıklı
medyan)
• Herhangi bir seviyede bir sınıflandırıcıyı eğittikten sonra, ada-boost her
eğitim öğesine ağırlık atar. Yanlış sınıflandırılan öğeye, bir sonraki
sınıflandırıcının eğitim alt kümesinde daha yüksek olasılıkla görünmesi için
daha yüksek ağırlık atanır
• Her sınıflandırıcı eğitildikten sonra , sınıflandırıcıya doğruluk temelinde
de bir ağırlık atanır . Daha doğru sınıflandırıcıya, nihai sonuçta daha fazla
etkiye sahip olması için daha yüksek ağırlık atanır.
Adaboost Algoritması
Adaboost
• Adım 5
• Ağırlıkları normalleştirme ve yeni dağılım oluşturma Çıktı
AdaBoost algoritması tarafından oluşturulan 4 kütük (Ağaçlar) olduğunu
• Yeni Numune Ağırlıklarını toplarsak, 2 * 0.2 + 8 * (0.05) =
0.8. Bu nedenle, normalleştirilmiş değerleri elde etmek için hayal edin. 4 güdükten 2 güdük test numunesini kategori 1 olarak
her bir numune ağırlığını 0,8'e böleriz. Şimdi sınıflandırır ve diğer 2 güdük test numunesini kategori 2 olarak sınıflandırır.
Normalleştirilmiş Ağırlıkları Yeni Numune Ağırlıkları olarak Bunlar bu güdükler için Say Miktarı 0.69 + 0.6 = 1.29 ve diğer 2 kütük için Sa
kabul ediyoruz
Miktarı 0.41 + 0.82 = 1.23'tür.
• Yeni ağırlıklar - 0.06, 0.06, 0.06, 0.25 , 0.06, 0.06, 0.25 , 0.06
olacaktır. Sonuçta, Kategori 1 , daha büyük Sayma Miktarı (1.29) nedeniyle çıktı
olacaktır.
• Bu nedenle, yanlış sınıflandırılan numunelerin ağırlıkları
0.1'den 0.25'e çıkarılır, böylece sonraki yinelemede birden
çok kez seçilme şansları artar. Bir sonraki güdük oluşturmadan
önce yeni bir veri kümesi oluşturmamız gerekiyor. Burada 0
ile 1 arasında rastgele sayılar seçiyoruz ve sonraki yineleme
için örnekleri seçiyoruz, burada dağılım gibi örnek ağırlıkları
kullanıyoruz.
AdaBoost'un Artıları:
• Düşük gürültülü veri kümelerinde aşırı uyuma göre nispeten sağlam
• AdaBoost, model performansını iyileştirmek için ayarlanması gereken
yalnızca birkaç hiperparametreye sahiptir
• Anlaması ve görselleştirmesi kolay
• AdaBoost'un dezavantajı, gürültülü veriler tarafından kolayca yenilmesi,
algoritma her noktaya mükemmel bir şekilde uymaya çalıştığı için
algoritmanın verimliliğinin aykırı değerlerden oldukça etkilenmesidir.
• Rastgele ormanlar ve XGBoost ile karşılaştırıldığında AdaBoost, alakasız
özellikler dahil edildiğinde daha kötü performans gösterir
• AdaBoost hız için optimize edilmemiştir
Gradient Boosting
• Gradient Boosting, Gradyan İniş + Arttırma anlamına gelir. Bu, çalışma temeli aynı
AdaBoost için gördüğümüz gibi olan çok popüler bir Boosting algoritmasıdır.
Aradaki fark, selefinin yeterince uygun olmayan değerleriyle ne yaptığında
yatmaktadır. Her etkileşimde örnek ağırlıklarını değiştiren AdaBoost'un aksine, bu
yöntem yeni öngörücüyü önceki tahminci tarafından yapılan artık hatalara
uydurmaya çalışır .
• Gradyan artırma, yükseltmeyi sayısal bir optimizasyon problemi olarak yeniden
tanımlar; burada amaç, gradyan-iniş benzeri bir prosedür kullanarak zayıf
öğrenciler ekleyerek modelin kayıp işlevini en aza indirmektir .
• Gradyan artırma, bir kayıp işlevini en aza indirmeye dayandığından, regresyon,
çok sınıflı sınıflandırma vb. İçin uygulanabilecek esnek bir teknikle sonuçlanan
farklı türlerde kayıp işlevleri kullanılabilir .
•
Maliyet optimizasyonu