Makine Öğrenimi ve Sinir Ağları - sayfa 70

 

7.1 Topluluk yöntemlerine giriş (L07: Topluluk Yöntemleri)


7.1 Topluluk yöntemlerine giriş (L07: Topluluk Yöntemleri)

Bu haftaki dersimizde, makine öğreniminde çok önemli bir alan olan topluluk yöntemlerini inceleyeceğiz. Bu yöntemler, gerçek dünya uygulamalarında yüksek performans elde etmek için uygulamalı makine öğrenimi araştırmalarında yaygın olarak kullanılmaktadır. Uygulamada etkinliği bilinen katı yöntemler genellikle en iyi sonuçları verir.

Ders ayrıca karar ağaçlarını yeniden ele alacak ve Piazza'da alaka düzeyleriyle ilgili bazı soruları ele alacaktır. Nispeten eski ve tanıdık bir algoritma olmasına rağmen, karar ağaçları günümüzde oldukça alakalı olmaya devam ediyor. Yalnızca yorumlanabilir olmakla kalmazlar, ayrıca istisnai performans sergiledikleri toplu yöntemlerde sıklıkla kullanılırlar. Ders, bu yönü de keşfetmeyi amaçlamaktadır.

Topluluk yöntemlerine geçmeden önce, dönem içinde nerede olduğumuzu özetlemek önemlidir. Şu anda ağaç tabanlı yöntemlere odaklanan üçüncü bölümü bitiriyoruz. Ancak, bu yöntemlerden bazılarının karar ağaçlarının ötesine geçtiğini ve derin sinir ağlarına uygulanan katı yöntemler de dahil olmak üzere diğer teknikleri kapsadığını belirtmekte fayda var. Karar ağaçları, topluluk yöntemlerinin çoğuyla yakın ilişkilerinden dolayı üçüncü bölümde kategorize edilmiştir.

Bu bölümü tamamladıktan sonra, denetimsiz öğrenmeyi ve zaman izin verirse Bayesçi öğrenmeyi tartışmadan önce model değerlendirmesine derinlemesine bakacağız. İlk plan, ara sınava girmek ve diğer yöntemleri daha erken ele almak olsa da, kurs ilerlemesi beklenenden daha uzun sürdü. Bununla birlikte, Python ortamını kurmak ve herkesi, özellikle de güçlü bir Python geçmişi olmayanları tanımak için harcanan ek süre faydalı oldu. Tüm katılımcıların aynı sayfada olmalarını ve scikit-learn gibi önceden oluşturulmuş kitaplıklara güvenmeden bir CART (Sınıflandırma ve Regresyon Ağaçları) karar ağacının uygulanmasını içerecek olan gelecek ödev için hazırlanmalarını sağlar.

Ders yedi bölüm halinde yapılandırılmıştır. İlk bölüm, topluluk yöntemlerine bir giriş ve genel bakış sağlar. Daha sonra, en basit topluluk yöntemi türü olan çoğunluk oylamasından başlayarak çeşitli dahili yöntemleri keşfedeceğiz. Ardından, eğitim setinden önyükleme örneklemesini içeren bir teknik olan torbalamayı inceleyeceğiz. Bu yöntemin kullanışlılığı açıklanacaktır. Zayıf öğrenicileri (kısa karar ağaçları gibi) güçlü modellere dönüştürmeyi içeren güçlendirme de ele alınacaktır. Özellikle günümüzün en popüler algoritmalarından biri olan ve Kaggle yarışmalarındaki başarısıyla bilinen gradyan artırmayı ele alacağız. Yaygın olarak tanınan başka bir topluluk yöntemi olan rastgele ormanlar tanıtılacaktır. Bu modeller, genellikle kapsamlı hiperparametre ayarlaması olmadan mükemmel performans sağladıklarından, kullanım kolaylıklarıyla tanınırlar. Özellikle makine öğreniminde uzmanlıkları yoksa, çeşitli bilimsel alanlarda tahmine dayalı modeller arayan kişiler için önerilir.

Destek vektör makinelerinden (SVM) de özellikle RBF (Radial Basis Function) çekirdekleriyle gösterdikleri performans nedeniyle geçmişteki popülaritesinden bahsedilecektir. Bununla birlikte, rasgele ormanlar genellikle kapsamlı ayarlamaya ihtiyaç duymadan eşit derecede iyi veya daha iyi sonuçlar verir, bu da onları pratik uygulamalar için tercih edilir kılar. Son olarak, uygulamalarda popüler olan bir diğer teknik olan istifleme ele alınacaktır.

Topluluk yöntemlerinin önemini göstermek için, rastgele ormanları içeren bir örneği gösteren bir şekil sunulacaktır. Bu model, sınıflandırma görevleriyle sınırlı değildir ve özellik önemini kolayca hesaplayabilir. Örneğin, bahsedilen örnekte, kükürt atomları, moleküllerin aktivitesini tahmin etmek için en önemli özellikler olarak tanımlanmıştır. Bu tür içgörüler pratikte değerli olabilir.

Ayrıca, rastgele ormanlar ve gradyan artırma dahil olmak üzere topluluk yöntemleri, en yaygın kullanılan derin öğrenme olmayan makine öğrenimi modelleri arasındadır. Derin öğrenme önem kazansa da topluluklar, olağanüstü performansları ve uygulama kolaylıkları nedeniyle hala son derece alakalı. Makale, makine öğrenimi algoritmalarında "yeni kraliçe" olarak aşırı gradyan artırmanın (XGBoost) yükselişinden bahsediyordu. Bu, ağaç tabanlı modellerin, özellikle de gradyan artırmanın çeşitli uygulamalarda öneminin altını çiziyor.

Özet olarak, bu haftaki ders topluluk yöntemlerinin kapsamlı bir şekilde anlaşılmasını sağlayacaktır. Farklı topluluk teknikleri ve uygulamalarını kapsayacaktır.

7.1 Intro to ensemble methods (L07: Ensemble Methods)
7.1 Intro to ensemble methods (L07: Ensemble Methods)
  • 2020.10.19
  • www.youtube.com
In lecture 7, we are discussing ensemble methods, including majority voting, bagging, random forests, stacking, and gradient boosting -- those are some of th...
 

7.2 Çoğunluk Oylaması (L07: Toplu Yöntemler)


7.2 Çoğunluk Oylaması (L07: Toplu Yöntemler)

Bu videoda, çoğunluk oylaması olarak bilinen model topluluklarının temel durumlarından birini inceleyeceğiz. Oyuncak bir örnek üzerinden, tek başına tek bir sınıflandırıcı kullanmaya kıyasla çoğunluk oylamanın faydalarını inceleyeceğiz.

Başlamak için, bir ikili sınıflandırma problemimizin olduğu bir senaryoyu ele alalım. Her biri bir dizi özellik ve karşılık gelen bir sınıf etiketi ile ilişkili birkaç gözlemden oluşan bir veri setimiz var. Amacımız, yeni, görünmeyen örnekler için sınıf etiketlerini doğru bir şekilde tahmin edebilen bir sınıflandırıcı oluşturmaktır.

Çoğunluk oylaması kavramını göstermek için, veri kümemizde üç ayrı sınıflandırıcıyı eğiterek başlıyoruz. Her sınıflandırıcı, tahminler yapmak için farklı bir algoritma veya model kullanır. Basit olması için, bu sınıflandırıcıların karar ağaçları olduğunu varsayalım.

Üç karar ağacı sınıflandırıcımızı eğittikten sonra artık yeni örnekler üzerinde tahminler yapabiliriz. Ancak, tek bir sınıflandırıcının tahminine güvenmek yerine çoğunluk oylama ilkesini kullanıyoruz. Çoğunluk oylamasında, topluluktaki her sınıflandırıcı, tahmin edilen sınıf etiketi için bir oy kullanır. En çok oyu alan sınıf etiketi, grubun nihai tahmini olarak kabul edilir.

Şimdi, çoğunluk oylamanın tek başına tek bir sınıflandırıcı kullanmaktan neden daha etkili olabileceğini görelim. Her bir karar ağacı sınıflandırıcısının, veri kümesindeki doğal gürültü veya değişkenlik nedeniyle bir dereceye kadar hataya sahip olduğu bir senaryo düşünün. Bu hatalar, yanlış tahminlere yol açarak tek bir sınıflandırıcının genel doğruluğunu azaltabilir.

Ancak, çoklu sınıflandırıcıların tahminlerini çoğunluk oylamasıyla birleştirerek bireysel hataların etkisini potansiyel olarak azaltabiliriz. Bir veya iki karar ağacı sınıflandırıcısı yanlış tahminlerde bulunsa bile, çoğunluk oylama süreci bu hataları telafi edebilir. Oyların çoğunu alan sınıf etiketinin doğru olma olasılığı daha yüksektir, bu da tek bir sınıflandırıcı kullanmaya kıyasla gelişmiş doğrulukla sonuçlanır.

Bunu göstermek için, iki karar ağacı sınıflandırıcısının doğru sınıf etiketini tahmin ederken, bir sınıflandırıcının hatalı bir tahmin yaptığı bir durum düşünelim. Bu durumda, doğru sınıf etiketi iki oy alırken, hatalı tahmin yalnızca bir oy alacaktır. Sonuç olarak, grubun çoğunluk oylama süreci, bireysel sınıflandırıcının yanlış tahminini geçersiz kılarak en çok oyu alan sınıf etiketini nihai tahmin olarak doğru bir şekilde belirleyecektir.

Bu örnek, topluluk yöntemlerinin, özellikle çoğunluk oylamanın, tahmin doğruluğunu artırmadaki gücünü göstermektedir. Birden çok sınıflandırıcının tahminlerini birleştirerek, her bir sınıflandırıcının güçlü yönlerinden yararlanabilir ve bireysel zayıflıklarının veya hatalarının etkisini en aza indirebiliriz.

Sonuç olarak, bu video model grupların temel bir biçimi olarak çoğunluk oylamanın önemini vurgulamaktadır. Bir oyuncak örneği aracılığıyla, özellikle tek tek sınıflandırıcılar hata veya değişkenlik gösterdiğinde, çoğunluk oylamanın tek başına tek bir sınıflandırıcı kullanarak nasıl daha iyi performans gösterebileceğini gördük. Çoğunluk oylaması gibi topluluk yöntemleri, tahmin doğruluğunu iyileştirmek için güçlü bir yaklaşım sunar ve pratik makine öğrenimi uygulamalarında yaygın olarak kullanılır.

7.2 Majority Voting (L07: Ensemble Methods)
7.2 Majority Voting (L07: Ensemble Methods)
  • 2020.10.20
  • www.youtube.com
This video discusses one of the most basic case of model ensembles, majority voting. Using a toy example (making certain assumptions), we see why majority vo...
 

7.3 Torbalama (L07: Toplu Yöntemler)



7.3 Torbalama (L07: Toplu Yöntemler)

Bir önceki videoda çoğunluk oylama kavramını etraflıca tartıştıktan sonra gelecek video, önyükleme toplama anlamına gelen torbalama olarak bilinen başka bir temel yöntemi inceleyecek. "Bagging" terimi, "B" ve "ag G" baş harflerinin birleşiminden türetilmiştir ve önyükleme kavramıyla yakından ilişkilidir. Bu teknik ilk olarak karar ağaçları, özellikle sınıflandırma ve regresyon ağaçları (CART) alanında önde gelen bir isim olan Leo Breiman tarafından önerildi. Rastgele ormanlara odaklanan gelecekteki bir derste Breiman'ın katkılarını daha ayrıntılı olarak inceleyeceğiz.

Başlamak için, torbalama algoritmasının ana hatlarını çizelim. İlk bakışta karmaşık görünse de aslında oldukça basittir ve yalnızca altı satırdan oluşur, boş satırı hariç tutarsak beş satırdan oluşur. Algoritma şu şekilde çalışır: Toplam n önyükleme örneğine veya turuna sahip olduğumuzu varsayalım. Her i turu için, eğitim setinden m boyutunda bir önyükleme örneği çiziyoruz. Burada m, eğitim setinin boyutunu temsil etmektedir. Değişkenler için tek harf kullanımının alışılmadık görünebileceğini, ancak harf seçiminin getirdiği sınırlamalar nedeniyle gerekli olduğunu not etmek önemlidir. Önceki videoda, tartıştığımız topluluk oylama sınıflandırıcılarındaki sınıflandırıcıların sayısına karşılık gelen önyükleme örneklerinin sayısını temsil etmek için n'yi kullandık.

Her önyükleme örneği için bir sınıflandırıcı eğitir ve çoğunluk oylaması uygularız. Bu süreç, daha önce ele aldığımız topluluk oylama sınıflandırıcısına oldukça benzer, tek fark, her sınıflandırıcıyı tüm eğitim setinde eğitmek yerine, her temel sınıflandırıcıyı eğitim setinden çıkarılan bir önyükleme örneği üzerinde eğitmemizdir.

Devam etmeden önce, önyükleme örneklemesi kavramını kısaca özetleyelim. m boyutunda bir veri kümesi düşünün. Bu veri kümesinden alınan her önyükleme örneğinin, yukarıda bahsedilen algoritmaya dayalı olarak m boyutu olacaktır. Önyükleme örneklemesi, değiştirilerek veri kümesinden rastgele veri noktalarının seçilmesini içerir. Örneğin, birden ona kadar etiketlenmiş on veri noktamız varsa ve değiştirme ile örnekleme gerçekleştirirsek, bazı veri noktaları önyükleme veri kümesinde çoğaltılır. Bu çoğaltma, her pozisyonun eğitim setinden bağımsız olarak çekilmesi nedeniyle oluşur. Sonuç olarak, bazı veri noktaları birden çok kez görünebilirken diğerleri hiç görünmeyebilir ve bu da bizim çantadan çıkmış (OOB) numuneler olarak adlandırdığımız örneklerle sonuçlanır. Bu OOB örnekleri, belirli bir tur için önyükleme örneğine dahil olmayan veri noktalarıdır.

Önyükleme örneğinde belirli bir öğeyi seçmemeyle ilişkili olasılığı daha iyi anlamak için, tek bir konum için belirli bir veri noktası seçmeme olasılığını inceleyelim. Eğitim setinde m örnek olduğundan, belirli bir konum için belirli bir veri noktası seçme olasılığı 1/m'dir. Bu nedenle, belirli bir veri noktasının seçilmeme olasılığı 1 - 1/m'dir. m seçeneğimiz olduğundan, önyükleme örneğinin tamamında belirli bir örnek seçmeme olasılığı (1 - 1/m)^n'dir. m yeterince büyük hale geldikçe, noktaların yaklaşık %36,8'i önyükleme örneğine dahil edilmeyecektir. Sonuç olarak, önyükleme örneğindeki veri noktalarının %63,2'si benzersiz olurken, geri kalan noktalar yinelenen olacaktır.

Torbalama prosedürü içinde önyükleme örneklemesini görselleştirmek, konseptin daha iyi anlaşılmasına yardımcı olabilir. Her biri yeni bir önyükleme örneğiyle sonuçlanan çok sayıda önyükleme örneklemesi gerçekleştirilir. Daha sonra bir sınıflandırıcı, her önyükleme örneğinde bağımsız olarak eğitilir. Bu süreç, önyükleme turları arasında herhangi bir bağımlılık olmadığı için model paralelliğini kolaylaştırır. Sonuç olarak, her tur aynı anda yürütülebilir ve bu da paralel işleme potansiyelini artırır.

Torbalama sınıflandırıcısının akış şeması, ilgili adımlara genel bir bakış sağlar. Oylama sınıflandırıcısına benzer şekilde, torbalama sınıflandırıcısı bir eğitim seti ile başlar. Ancak, torbalamada, çoklu önyükleme örnekleri oluşturmak için eğitim setini yeniden kullanırız. Her önyükleme örneği, bir sınıflandırıcı yetiştirmek için kullanılır ve bu da toplam m sınıflandırıcı ile sonuçlanır. Her sınıflandırıcı tahminler üretir ve nihai tahmin çoğunluk oylamasıyla belirlenir. Bu yaklaşım, aşırı uydurmayı azaltmaya ve modelin kararlılığını ve genelleştirmesini geliştirmeye yardımcı olur.

Torbalama çeşitli avantajlar sunar:

  • Varyansın azaltılması: Torbalama, birden fazla önyükleme örneği oluşturarak ve her örnek üzerinde bağımsız sınıflandırıcılar eğiterek, tahminlerin varyansını etkili bir şekilde azaltır. Bu varyans azaltma, temel sınıflandırıcı aşırı uydurmaya eğilimli olduğunda özellikle faydalıdır.
  • Geliştirilmiş kararlılık: Torbalama, farklı önyükleme örnekleri üzerinde birden çok sınıflandırıcının eğitilmesini içerdiğinden, modele kararlılık sağlar. Eğitim setindeki küçük değişikliklerin nihai tahmin üzerinde önemli bir etkiye sahip olma olasılığı daha düşüktür ve bu da daha sağlam bir modelle sonuçlanır.
  • Karmaşık veri kümelerini işleme: Torbalama, yüksek varyans ve gürültü ile karakterize edilen karmaşık veri kümelerinin işlenmesinde oldukça etkilidir. Torbalama, birden çok sınıflandırıcı kullanarak ve tahminlerini toplayarak farklı kalıpları yakalar ve aykırı değerlerin veya gürültülü verilerin etkisini azaltır.
  • Paralel işleme: Torbalama, önyükleme örneklerinin paralel işlenmesine ve sınıflandırıcıların eğitimine izin verir. Her önyükleme örneği diğerlerinden bağımsızdır ve hesaplama kaynaklarının verimli bir şekilde kullanılmasını sağlar.

Avantajlarına rağmen torbalamanın da bazı sınırlamaları vardır:

  • Yorumlanabilirlik: Torbalama, birden fazla sınıflandırıcıdan gelen tahminleri birleştirdiğinden, her sınıflandırıcının nihai tahmine bireysel katkılarını yorumlamak zor olabilir. Topluluk modeli doğru tahminler sağlayabilirken, bunların arkasındaki mantığı anlamak daha karmaşık hale gelir.
  • Hesaplama karmaşıklığı: Farklı önyükleme örnekleri üzerinde birden fazla sınıflandırıcı eğitmek, torbalama algoritmasının hesaplama karmaşıklığını artırır. Tahminleri eğitmek ve bir araya getirmek için gereken zaman ve kaynaklar, özellikle büyük veri kümeleri için önemli olabilir.
  • Potansiyel fazla takma: Torbalama, tek bir sınıflandırıcıya kıyasla fazla takma riskini azaltsa da, fazla uydurmaya karşı tamamen bağışık değildir. Temel sınıflandırıcı zaten fazla uydurmaya eğilimliyse, torbalama önemli iyileştirmeler sağlamayabilir.
  • Sınırlı çeşitlilik: Torbalama, çeşitli sınıflandırıcılar elde etmek için çeşitli önyükleme örnekleri oluşturmaya dayanır. Bununla birlikte, veri kümesinin küçük olduğu veya sınırlı değişkenlik gösterdiği bazı durumlarda, önyükleme örnekleri yeterince çeşitli olmayabilir ve bu da torbalamanın etkinliğini azaltır.

Bu bölümde, daha önce tartışılan kavramları daha derinlemesine inceleyeceğiz. Bir modelden elde edilen tahminler önemli farklılıklar gösterdiğinde, yüksek varyansı gösterir. Örneğin, turuncu durum için karmaşık bir karar ağacı düşünelim. Bu modelden elde edilen tahminler, mavi modelin tahminlerinden önemli ölçüde farklı olacaktır. Benzer şekilde, yeşil davanın kendi farklı tahminleri olacaktır. Bu değişen tahminler, yüksek varyans kavramını göstermektedir.

Yüksek varyansın etkisini daha iyi anlamak için, bu veri kümelerine takılan gerçek karar ağaçlarını inceleyelim. Varyasyonlarına rağmen, yüksek varyans durumu hala iyi bir ortalama tahmin sağlamayı başarıyor. Burada ortalama tahmini açıkça göstermemiş olsam da, farklı eğitim setlerine yerleştirilmiş üç modelden (model bir, iki ve üç) gelen tahminlerin ortalamasının alınması, gerçek fonksiyona çok yakın bir tahminle sonuçlanacaktır. . Buna karşılık, daha önce gösterildiği gibi, yüksek sapmalı modeller, yalnızca çizgilerin gerçek işlevle kesiştiği belirli konumlarda doğrudur. Diğer tüm durumlarda, yüksek önyargılarından dolayı düşük performans gösterirler.

Ancak, yüksek varyanslı bir model kullanarak ve birden çok modelden elde edilen tahminlerin ortalamasını alarak yine de doğru tahminler elde edebiliriz. Bu kavram, önyükleme örneklemesi yoluyla oluşturulan farklı eğitim setlerinin kullanılmasını içeren torbalamanın temelini oluşturur. Torbalamada, her önyükleme örneği bir karar ağacına sığdırmak için kullanılır ve bu da birden çok yüksek varyanslı modelle sonuçlanır. Bu modellerin daha sonra sınıflandırma görevlerinde sınıf etiketleri veya regresyon görevlerinde regresyon çıktıları dikkate alınarak toplu oylama kullanılarak ortalaması alınır. Bu ortalama alma işlemi, varyansı azaltarak oldukça doğru tahminler elde etmeye yardımcı olur.

Farklı eğitim setlerine yerleştirilmiş üç karar ağacının tahminlerinin ortalamasını alarak, gerçek fonksiyona çok yakın olan bir ortalama tahmin elde ederiz. Bu ortalama alma, her bir eğitim setinin bir önyükleme veri seti görevi gördüğü torbalama konseptine benzer. İkinci olarak, karar ağaçlarının değerleri enterpolasyon yapamayacağını not etmek önemlidir. Yalnızca eğitim setinde var olan hedef değerleri veya bunların ortalamalarını tahmin edebilirler. Böylece, şekilde gösterilen kademeli fonksiyon, budanmamış bir karar ağacının bir yaklaşımıdır.

Sonuç olarak, torbalama, yüksek varyanslı modellerden tahminlerin ortalamasını alarak varyansı azaltmak için etkili bir tekniktir. Torbalama, paralelleştirme kullanarak, birden fazla CPU kullanarak model uydurmayı hızlandırabilir. Bununla birlikte, bazı Windows bilgisayarları Python'da çoklu işlemle ilgili sorunlarla karşılaşabilir ve bu da birden çok işin kullanımını sınırlayabilir. Ayrıca, torbalama sınıflandırıcılarının, model performansını değerlendirmek için önyükleme örneğine dahil olmayan veri noktalarının kullanılmasını içeren torba dışı doğruluğunu hesaplayabildiğini de belirtmekte fayda var. Bu, modelin genelleme yeteneğini değerlendirmek için yararlı bir ölçüm sağlar. Scikit-learn kullanan kod örneğinde, torbalama sınıflandırıcısı topluluk alt modülünden içe aktarılabilir.

Bu durumda karar ağacı olan temel tahmin edici, budanmamış bir karar ağacı oluşturmak için maksimum derinlik Yok olarak ayarlanarak başlatılır. Tahmin edici sayısı, önyükleme turlarının sayısını belirler ve buna göre n_jobs parametresi ayarlanarak paralelleştirme sağlanabilir. Ek olarak, oob_score parametresi, çanta dışı puanının hesaplanmasını sağlar. Torbalama sınıflandırıcısını eğittikten sonra, torba dışı skoru ve test seti doğruluğu değerlendirilebilir.

Genel olarak, torbalama, birden fazla yüksek varyans modelini birleştirerek yüksek varyansı azaltmak ve tahmin doğruluğunu iyileştirmek için etkili bir yaklaşım sunar. Özetle, torbalama, tahmin doğruluğunu iyileştirmek ve varyansı azaltmak için farklı önyükleme örnekleri üzerinde eğitilmiş birden çok sınıflandırıcıyı birleştiren güçlü bir topluluk yöntemidir. Karmaşık veri kümeleriyle uğraşırken özellikle yararlıdır ve modelin kararlılığını ve genellemesini geliştirebilir. Bununla birlikte, azaltılmış yorumlanabilirlik ve artan hesaplama karmaşıklığı dahil olmak üzere bazı sınırlamaları da vardır.

7.3 Bagging (L07: Ensemble Methods)
7.3 Bagging (L07: Ensemble Methods)
  • 2020.10.20
  • www.youtube.com
In this video, we look at bagging (bootstrap aggregating) and also introduce the bias-variance trade-off and decomposition in order to understand why bagging...
 

7.4 Boosting ve AdaBoost (L07: Topluluk Yöntemleri)


7.4 Boosting ve AdaBoost (L07: Topluluk Yöntemleri)

Bir önceki videoda, özellikle budanmamış karar ağaçlarına odaklanarak, yüksek varyans ve düşük sapma modelleri kavramını tartışmıştık. Ayrıca, ortalama alma yoluyla varyansı azaltarak yüksek varyanslı modellerin performansını artırmaya yardımcı olan, torbalama adı verilen bir teknik öğrendik.

Bu derste, dikkatimizi ters yönde işleyen güçlendirmeye çevireceğiz. Güçlendirme, basit karar ağacı kütükleri gibi düşük varyanslı yüksek taraflı modellerin kullanılmasını ve genel modelin performansını artırmak için bunların artırılmasını içerir. Bu ilk video, boost kavramlarına genel bir bakış sunacak ve genel olarak boost'u tanıtacak, bir sonraki video ise degrade boost adı verilen popüler bir boost türünü inceleyecek.

Güçlendirme genel olarak iki ana türe ayrılabilir: uyarlanabilir güçlendirme (örn. adaboost) ve gradyan artırma. Tarihsel olarak, hesaplama karmaşıklığı nedeniyle gradyan artırma daha az yaygın olarak kullanılıyordu. Ancak, 2016'da XGBoost'un kullanıma sunulması gibi son gelişmeler, gradyan artırma performansını önemli ölçüde iyileştirdi. Günümüzde, bir sonraki videoda tartışacağımız LightGBM gibi daha da iyi değişkenler ortaya çıktı. Gradyan güçlendirme popülerlik kazanmış olsa da, uyarlanabilir güçlendirme yoluyla genel yükseltme prosedürünü anlamak önemlidir.

Takviye prosedürü, torbalama prosedüründen farklı olan belirli bir taslağı takip eder. Dikkate değer bir ayrım, turlar arasındaki bağımlılıkların varlığıdır. Yükseltme prosedürü, sınıflandırıcı bir, sınıflandırıcı iki ve benzeri olarak M sınıflandırıcısına kadar gösterilen birden çok sınıflandırıcı içerir. Başlangıçta, düzenli bir eğitim veri kümesiyle başlar ve sınıflandırıcı bir'i sığdırırız. Birinci sınıflandırıcının tahminlerine dayanarak, daha sonra daha ayrıntılı olarak tartışacağımız belirli bir ağırlıklandırma yöntemi kullanarak eğitim örneklerini ağırlıklandırıyoruz. Daha sonra ikinci sınıflandırıcı bu ağırlıklı eğitim veri setini kullanır ve süreç devam eder. Ağırlık, önceki sınıflandırıcıların tahminlerine bağlıdır ve bu da artırmayı paralelleştirmeyi zorlaştırır. Sınıflandırıcıların aynı anda eğitilebildiği torbalamanın aksine, güçlendirme, bir sonraki sınıflandırıcı için veri setini güncellemeden önce önceki sınıflandırıcının tahminler yapmasını beklemeyi gerektirir. Son tahminlerde bulunurken, artırma, toplu oylama veya torbalamada kullanılan ortalama almanın aksine, sınıflandırıcıların ağırlıklı bir kombinasyonunu kullanır. Ağırlıklı kombinasyon, her bir sınıflandırıcının tahminine ağırlıklar atayan işaret fonksiyonuna dayalı olarak belirlenir. İkili sınıflandırma için, işaret işlevi pozitif sonuçlar için 1 ve negatif sonuçlar için -1 döndürür. Bu ağırlıklı tahmin, -1 veya 1'lik nihai bir tahminle sonuçlanır. İşlem, gösterge işlevleri kullanılarak keyfi sınıf sayılarını işlemek için genişletilebilir.

Genel güçlendirme prosedürünü daha iyi anlamak için, ilgili adımları özetleyelim. İlk olarak, her eğitim örneği için tekdüze ağırlıklara sahip bir ağırlık vektörü başlatıyoruz. Bu ağırlıklar, her eğitim örneğinin önemini temsil eder. Ardından, artırma prosedürünün farklı sınıflandırıcıları veya turları üzerinde yinelenen bir döngüye giriyoruz. Her turda, ağırlıklı eğitim örneklerine rastgele tahminden biraz daha iyi bir sınıflandırıcı olan zayıf bir öğrenciyi uyguluyoruz. Belirli örneklere daha yüksek ağırlıklar atayabilir veya ağırlıklı olasılıklarla önyükleme örnekleri çizebiliriz. Zayıf öğreniciyi eğittikten sonra, yanlış sınıflandırılan örneklerin ağırlığını artırarak bir sonraki sınıflandırıcının bu yanlış sınıflandırılmış örneklere odaklanmasını sağlarız. Bu döngü birçok kez tekrarlanır ve son olarak, nihai tahminleri elde etmek için eğitimli sınıflandırıcılar üzerinde ağırlıklı çoğunluk oylaması yapılır.

Şimdi, daha önce tartışılan genel güçlendirme prosedürüyle yakından uyumlu olan adaboost algoritmasına odaklanalım. Adaboost, sınıflandırıcıların ağırlıklı eğitim örneklerine yerleştirildiği genel güçlendirme taslağına benzer. Algoritma, her eğitim veri noktası için ağırlıkları başlatarak başlar. Ardından, adaboost turlarını içeren ana for döngüsü başlar. Her turda, ağırlıklar bire eşit olmasını sağlamak için normalleştirilir. Daha sonra, ağırlıklı eğitim setinde zayıf bir öğrenci eğitilir ve ağırlıklı tahmin hataları hesaplanır. Tahmin hataları, eğitim seti ağırlıkları ile ağırlıklandırılır ve yanlış sınıflandırmaları gösterir. Tahmin hataları daha sonra zayıf öğrencinin nihai tahmine katkısını hesaplamak için kullanılır. Katkı, zayıf öğrenicinin doğruluğuna göre belirlenir, daha doğru öğrenenlerin katkısı daha yüksektir. Katkı daha sonra eğitim örneklerinin ağırlıklarını güncellemek için kullanılır. Yanlış sınıflandırılan örneklerin ağırlıkları artırılırken, doğru sınıflandırılan örneklerin ağırlıkları azaltılır. Bu düzeltme, sonraki turlarda yanlış sınıflandırılan örneklerin önemini vurgular.

Ağırlıklar güncellendikten sonra süreç, zayıf öğrencinin güncellenmiş ağırlıklı eğitim seti üzerinde eğitildiği bir sonraki tura geçer. Bu yinelemeli süreç, belirtilen tur sayısı kadar veya belirli bir kriter sağlanana kadar devam eder. Tüm turlar tamamlandığında, tüm zayıf öğrencilerin tahminleri birleştirilerek nihai tahmin yapılır. Her bir zayıf öğrencinin tahmininin ağırlığı, eğitim sırasında genel doğruluğa yaptığı katkıyla belirlenir.

Adaboost algoritması, güçlü bir topluluk modeli oluşturmak için zayıf öğrencilerin tahminlerini etkili bir şekilde birleştirir. Her zayıf öğrencinin tahminine atanan ağırlıklar, eğitim örneklerini sınıflandırmadaki performansını yansıtır. Ağırlıkları yinelemeli olarak ayarlayarak ve yanlış sınıflandırılmış örneklere odaklanarak adaboost, modelin doğruluğunu zaman içinde geliştirebilir.

Adaboost'un verilerdeki aykırı değerlere ve gürültüye duyarlı olduğunu unutmamak önemlidir. Aykırı değerler, ağırlık güncellemeleri üzerinde önemli bir etkiye sahip olabilir ve potansiyel olarak fazla uydurmaya yol açabilir. Bu nedenle, aykırı değerleri ve gürültülü örnekleri işlemek için verilerin önceden işlenmesi önerilir. Ek olarak, zayıf öğrenenler çok karmaşıksa veya tur sayısı çok yüksekse, adaboost fazla uydurmaya eğilimli olabilir. Karar ağaçlarının derinliğini sınırlamak veya erken durdurmayı kullanmak gibi düzenleme teknikleri, fazla uydurmanın azaltılmasına yardımcı olabilir.

Kavramı kabaca çizecek olsaydık, şöyle görünürdü: x ekseninde alfa değerini temsil eden bir ok var. Alfa değeri, son tahminde her bir sınıflandırıcının önemini belirler. Tahmini ve öngörüyü ağırlıklandırmak için alfa değerini kullandığımızda, bir sınıflandırıcının büyük bir hatası varsa, alfa değerinin nispeten küçük olacağını görürüz. Bu, yüksek hataya sahip bir sınıflandırıcının nihai tahmin için o kadar önemli olmadığı anlamına gelir. Öte yandan, küçük hatalara sahip sınıflandırıcılar daha yüksek bir ağırlığa sahip olacak çünkü çoğunluk oylamasını hesaplarken onlara daha çok güveniyoruz.

Alfa değerini iki şekilde kullanırız: birincisi, onu tahmini ve öngörüyü ağırlıklandırmak için kullanırız ve ikinci olarak, bir sonraki tur için ağırlıkları güncellemek için kullanırız. Tahmin doğruysa, o eğitim örneğine atanan ağırlık küçük olacaktır. Bu, doğru bir tahmin yaparsak, bir sonraki turda o eğitim örneğine fazla dikkat etmeyeceğimiz anlamına gelir. Kolay bir örnek olarak kabul edilir. Öte yandan, bir hata yaparsak, o örneğe verilen ağırlık daha büyük olacaktır. Bu, bir sonraki turda yanlış sınıflandırılan örneklere daha fazla dikkat edeceğimiz anlamına gelir. Alfa değeri ne kadar küçük olursa, yanlış sınıflandırılmış örneklere verilen ağırlık o kadar büyük olur.

Bu kavramı açıklamak için iki boyutlu bir durumu ele alalım. x1 ve x2 olmak üzere iki özelliği olan bir oyuncak örneğimiz var. Sadece bir bölmeye sahip bir karar ağacı olan bir karar ağacı kütüğünü yerleştiriyoruz. Karar ağacı kütüğü bazı noktaları doğru bir şekilde sınıflandırır, ancak diğerlerinde hata yapar. AdaBoost'un ilk turunda yanlış sınıflandırılmış örneklere daha yüksek, doğru sınıflandırılmış örneklere ise daha düşük ağırlıklar veriyoruz. Ardından, bir önceki turdaki yanlış sınıflandırılmış örneklere odaklanarak başka bir karar ağacı kütüğünü yerleştiririz. Bu süreç, her yeni sınıflandırıcının bir önceki sınıflandırıcının hatalarından ders alması ve yanlış sınıflandırılan örneklere daha fazla dikkat etmesiyle devam eder. Son olarak, çoğunluk oylamasını kullanarak tüm sınıflandırıcıları birleştirdiğimizde, tüm örnekleri doğru şekilde sınıflandıran bir sınıflandırıcı elde edebiliriz.

AdaBoost'u anlamak biraz karmaşık olabilir ama yardımcı olacak kaynaklar var. AdaBoost hakkındaki orijinal makale derinlemesine bir açıklama sağlar, ancak daha erişilebilir bir giriş için Manwani'nin öğretici makalesi önerilir. Kod örneklerine geçmeden önce, çok sınıflı sınıflandırma için AdaBoost algoritmasının AdaBoost.M2 veya SAMME adlı bir modifikasyonundan bahsetmeye değer. Birden çok sınıfı işlemek için orijinal algoritmaya küçük bir değişiklik getirir. SAMME.R adlı bir gerçek sayı sürümü de vardır. Eğer ilgileniyorsanız, ilgili makalelerde bu varyasyonları keşfedebilirsiniz.

Scikit-learn'de AdaBoost, hızlandırıcı bir sınıflandırıcı olarak uygulanır. Zayıf sınıflandırıcılar olarak karar ağacı kütüklerini kullanır ve sınıflandırma sonuçlarına göre eğitim örneklerinin ağırlıklarını ayarlar. AdaBoost, bu zayıf sınıflandırıcıları güçlendirerek genel performansı iyileştirir. Budanmamış bir karar ağacının ve iris veri kümesindeki bir karar ağacı kütüğünün doğruluğunu karşılaştıran AdaBoost, karar ağacı kütükleri ile daha yüksek bir doğruluk elde eder. Eğitim süreci, numune ağırlıklarının güncellenmesini içerir, bu nedenle torbalamadaki gibi paralelleştirme seçeneği yoktur. Scikit-learn'deki AdaBoost, zayıf sınıflandırıcıları güçlendirmek ve daha iyi sınıflandırma sonuçları elde etmek için etkili bir yol sağlar.

Ardından, güçlendirmenin bir başka popüler çeşidi olan gradyan artırmayı inceleyeceğiz. Gradient boosting, AdaBoost'un konseptlerini temel alır ancak ek geliştirmeler sunar.

Gradient boosting, zayıf sınıflandırıcıların zayıflıklarını yinelemeli olarak geliştirerek performansını daha da artırmayı amaçlayan, güçlendirme algoritmasının popüler bir çeşididir. Optimizasyon problemlerinde yaygın olarak kullanılan gradyan iniş kavramına dayanmaktadır. Gradyan artırmada, zayıf sınıflandırıcılar sırayla eğitilir ve güçlü bir sınıflandırıcı oluşturmak için birleştirilir.

Gradyan artırmanın ardındaki temel fikir, zayıf sınıflandırıcıları yinelemeli olarak eğitmek ve ardından sınıflandırıcı topluluğu tarafından yapılan hatalara dayalı olarak eğitim örneklerinin ağırlıklarını ayarlamaktır. Bu ayarlama, topluluğun tahminlerine göre kayıp fonksiyonunun gradyanlarını hesaplayarak yapılır. Grup, kayıp fonksiyonunu en aza indirerek performansını kademeli olarak artırır.

Konsepti açıklamak için basit bir örnek ele alalım. Veri noktalarını pozitif veya negatif olarak sınıflandırmak istediğimiz bir ikili sınıflandırma problemimiz olduğunu varsayalım. Eğitim verileri üzerinde karar ağacı kütüğü gibi zayıf bir başlangıç sınıflandırıcısını eğiterek başlıyoruz. Bu sınıflandırıcı bazı hatalar yapacaktır ve tahminlerini eğitim örneklerinin gerçek etiketleriyle karşılaştırarak hataları veya artıkları hesaplarız.

Bir sonraki yinelemede, önceki sınıflandırıcının kalıntılarını tahmin etmek için yeni bir zayıf sınıflandırıcı eğitiyoruz. Bu yeni sınıflandırıcı, bir öncekinin yaptığı hataları düzeltmeye odaklanır. Artıkları, tahmin edilen değerleri gerçek artıklardan çıkararak hesaplıyoruz. Yine, bu yeni sınıflandırıcı bazı hatalar yapacak ve artıkları hesaplayacağız.

Topluluğun artıklarını tahmin etmek için yeni zayıf sınıflandırıcıları sırayla eğiterek ve mevcut topluluk tarafından yapılan hatalara dayalı olarak kalıntıları güncelleyerek bu işlemi tekrarlıyoruz. Her zayıf sınıflandırıcı, mevcut artıklara göre kayıp fonksiyonunu en aza indirmek için eğitilir. Nihai topluluk, tüm zayıf sınıflandırıcıların birleştirilmesiyle elde edilir ve her sınıflandırıcı, performansına dayalı olarak ağırlıklı bir oylamaya katkıda bulunur.

Zayıf sınıflandırıcıların ağırlıkları, her sınıflandırıcının nihai tahmine katkısını kontrol eden öğrenme oranı tarafından belirlenir. Daha küçük bir öğrenme oranı, daha yavaş bir yakınsamaya yol açar, ancak daha iyi genelleme ile sonuçlanabilir. Daha büyük bir öğrenme oranı, daha hızlı yakınsamaya yol açabilir, ancak aynı zamanda fazla uydurmaya da yol açabilir.

Gradyan artırmanın, regresyon, sınıflandırma ve sıralama sorunları dahil olmak üzere çok çeşitli makine öğrenimi görevleri için güçlü bir teknik olduğu kanıtlanmıştır. Bilgisayar görüşü, doğal dil işleme ve biyoinformatik gibi çeşitli alanlarda başarıyla uygulanmıştır.

Uygulamada, gradyan artırma için verimli ve optimize edilmiş algoritmalar sunan XGBoost, LightGBM ve CatBoost dahil olmak üzere gradyan artırmanın çeşitli uygulamaları mevcuttur. Bu uygulamalar, gradyan artırma modellerinin performansını ve esnekliğini daha da geliştirmek için paralelleştirme, düzenlileştirme teknikleri ve eksik değerleri işleme gibi ek özellikler sağlar.

Boost'a giriş ve adaboost algoritmasına genel bakış burada sona eriyor. Bir sonraki videoda, gradyan iniş kavramları, kayıp fonksiyonları ve gradyan artırma sürecini geliştirmek için geliştirilmiş özel algoritmalar dahil olmak üzere gradyan artırmayı daha ayrıntılı olarak keşfedeceğiz.

7.4 Boosting and AdaBoost (L07: Ensemble Methods)
7.4 Boosting and AdaBoost (L07: Ensemble Methods)
  • 2020.10.21
  • www.youtube.com
This video discusses the general concept behind boosting -- one of the model ensembling approaches in machine learning. Then, it goes over an early boosting ...
 

7.5 Gradyan Yükseltme (L07: Toplu Yöntemler)


7.5 Gradyan Yükseltme (L07: Toplu Yöntemler)

Gradyan artırma kavramı, karar ağaçlarını ve farklılaştırılabilir bir kayıp fonksiyonunu kullanan yükseltmenin modern bir versiyonu olarak tanıtıldı. AdaBoost'a benzer olsa da, gradyan artırma, karar ağaçlarının nasıl yerleştirildiğine göre farklılık gösterir. Gradyan artırmada daha derin ağaçlar kullanılır ve eğitim örneklerine veya sınıflandırıcılara atanan ağırlıklar yoktur. Gradyan artırmanın ardındaki ana fikir, modeli geliştirmek için kayıp fonksiyonundan gradyanların kullanılmasıdır, bu da tablo veri setlerinde daha iyi performans sağlar. Bu algoritma, özellikle makine öğrenimi yarışmalarında popülerlik kazanmıştır.

Regresyon bağlamında, gradyan artırma, bir temel ağaç oluşturmakla başlar. Örneğin, bir ev fiyatı tahmin probleminde, ilk temel ağaç sadece kök düğümden oluşur. Hedef, bu durumda eğitim setindeki dört evin ortalama fiyatı olan o düğümdeki ortalama değere dayalı olarak tahmin edilir. Daha sonra bir sonraki ağaç, bir önceki ağacın tahmin hatasına göre oluşturulur. Bu tahmin edilen hata, yeni bir ağaca sığdırmak için kullanılır. Birinci ve ikinci adımdaki ağaçlar birleştirilir ve bu işlem birçok kez tekrarlanır, sonraki her ağaç önceki ağaçların hatalarına uyarlanır. Basit karar ağacını artıklara dayalı yenisiyle birleştirerek, model daha iyi ve daha doğru tahminler yapabilir.

Tüm ağaçların tahminlerinin art arda toplanarak birleştirildiği bir toplama modeli olarak gradyan artırma kavramı tartışılmaktadır. Her ağacın nihai tahmine ağırlığını veya katkısını belirleyen öğrenme oranı veya adım boyutu da tanıtılır. Gradyan artırma, önceki tahminin hataları üzerine ağaçları uydurma işlemi tekrarlanarak, fazla uydurmayı önlemek için modeli küçük bir adım boyutuyla kademeli olarak oluşturarak gerçekleştirilir. Bu işlem, hiperparametre ayarlarına dayalı olarak önceden belirlenmiş sayıda ağaç tamamlanana kadar devam eder.

Konuşmacı, hem regresyon hem de sınıflandırma problemlerinde kullanılan gradyan artırma algoritmasını açıklar. Algoritma, modeli bir kök düğüm olarak başlatmayı ve ardından birden çok ağacı sığdırmayı ve uç düğümler oluşturmayı içerir. Tahminler her düğümde yapılır ve kayıp hesaplanır. Algoritma, genel olarak kaybı en aza indirme hedefiyle, istenen ağaç sayısına ulaşılana kadar tekrarlanabilir.

Mevcut modeli hesaplamak için önceki model ve yeni tahmin adımı birleştirilir, öğrenme oranı veya adım boyutu ile ağırlıklandırılır ve güncellenen model belirlenir. Bu işlem, T ile gösterilen istenilen ağaç sayısına ulaşılana kadar tekrarlanır. Sözde artıklar hesaplanır, ardından önceki tur modelinin gerçek etiketlerine ve tahminlerine dayalı olarak kaybın türevi hesaplanır. Artıklar daha sonra hesaplanır ve belirli düğümdeki kaybı en aza indiren tahmin değeri belirlenir. Buna göre model güncellenir ve bu işlem T modele ulaşılana kadar tekrarlanır. Negatif log-olasılık kaybı gibi türevlenebilir kayıp fonksiyonları sınıflandırma için kullanılabilse de, bu sınıftaki odak noktası toplam karesel hata veya ortalama karesel hatadır.

Video, gradyan artırma ile ilgili adımları ve pratik uygulamasını tartışıyor. İlk adım, ifadeyi en aza indiren tahmini bularak belirli bir düğümdeki tüm eğitim örnekleri için kaybı en aza indirmeyi içerir. İkinci adımda, T ağaçları için bir döngü kullanılır ve her bir yaprak düğümdeki tahmin, o düğümdeki örneklerin ortalaması alınarak hesaplanır. Ortalama tahmin önceki modelle birleştirilir ve her ağaç için tahminler toplanır. Öğrenme oranı, sözde artıkları azaltmak ve fazla uydurmayı önlemek için kullanılır. Video, pratikte kullanılan gradyan artırmanın diğer ilginç yönlerine de kısaca değiniyor.

Video, birden çok işlemi veya bilgi işlem düğümünü tam olarak kullanamadığı için sıralı bir algoritma olarak artırmanın potansiyel olumsuzluklarını vurgular. Bununla birlikte, gradyan artırma işlemini daha verimli hale getirmek için çeşitli püf noktaları içeren xgBoost adlı bir uygulama vardır. Aslında, 2015'ten 2017'ye kadar Kaggle'da yayınlanan 29 Zorluk Kazandıran Çözüm arasından 17'si xgBoost kullandı. Bu çözümlerden sekizi, modeli eğitmek için yalnızca xgBoost'a güvenirken, diğerleri xgBoost'u sinir ağlarıyla birleştirdi veya popüler bir toplu oylama tekniği olan yığınlamayı kullandı. Video, xgBoost'un etkinliğine katkıda bulunan benzersiz özelliklerini gösteren, farklı güçlendirme uygulamalarını karşılaştıran bir makaleden iki tablo sunuyor.

Video, yaklaşık küresel, çekirdek dışı öğrenme, seyreklik farkındalığı ve paralellik gibi çeşitli avantajlar sunan bir gradyan güçlendirme çeşidi olan Ekstra Güçlendirmeyi tartışıyor. Extra Boost, dağıtılmış veri alt kümelerinin özet istatistiklerini kullanarak en iyi ayrımı bulmak için yaklaşık yöntemler içerir. Video, Extra Boost'un performansını tam açgözlü yöntemi kullanarak diğer gradyan artırma uygulamalarıyla karşılaştırır ve Extra Boost'un bir uygulamayla aynı performansı elde ettiğini, ancak ağaç başına önemli ölçüde azaltılmış süre ile onu hiperparametre ayarı için daha çekici hale getirdiğini gösterir.

Ayrıca video, Extra Boost tarafından sunulan düzenlileştirme teknikleri, eksik özellikleri atama yoluyla ele alma ve önbelleğe alma gibi çeşitli iyileştirmeleri açıklıyor. Bu iyileştirmeler, fazla takmayı azaltmaya ve Extra Boost'un genel performansını iyileştirmeye yardımcı olur. Ek olarak, Extra Boost, özelliklerin alt kümelerini ve eğitim örneklerini rasgele seçen sütun ve satır tabanlı alt örneklemeyi kullanır, hem hesaplama verimliliğini artırır hem de aşırı uydurmayı azaltır. Video, tekniklerinin daha ayrıntılı bir açıklaması için Ekstra Güçlendirme hakkındaki makaleye atıfta bulunmayı önerir.

Video, gradyan artırma makinelerinin daha yeni bir uygulaması olan Extra Boost'a genel bir bakış sunar. Extra Boost, aşırı uydurmayı azaltmayı ve tahmin doğruluğunu iyileştirmeyi amaçlar. Video, tam açgözlü algoritma ve histogram tabanlı bölme bulma dahil olmak üzere bölmeleri bulmak için farklı teknikleri tartışıyor. İkinci yaklaşım, sürekli bir özelliği, eğitim hızını artırabilen ve bellek kullanımını azaltabilen ayrı bir histograma bindirmeyi içerir. Video ayrıca Extra Boost ile Light GBM'yi karşılaştırıyor, bu da daha hızlı ve daha doğru olan başka bir uygulama. Hafif GBM, histogram tabanlı bölünmüş bulmayı kullanır ve Extra Boost'a kıyasla daha düşük bellek kullanımı ve daha yüksek tahmin doğruluğu sunar.

Video, scikit-learn'de gradyan artırma sınıflandırıcılarının uygulanmasını tartışıyor ve kitaplığın yeni bir sürümüne eklenen yeni gradyan artırma sınıflandırıcısını tanıtıyor. Yeni sınıflandırıcı, LightGBM'den ilham alan histogram tabanlı bölmeyi kullanır ve önceki sınıflandırıcıdan daha hızlı hale getirir. Video, hangisinin en iyi performansı gösterdiğini belirlemek için her iki gradyan artırıcı sınıflandırıcının kullanılmasını ve bunların XGBoost ile karşılaştırılmasını önerir. Kod örnekleri, scikit-learn'de gradyan artırma sınıflandırıcısının uygulanması ve yeni histogram gradyan artırma sınıflandırıcısının kullanılması dahil olmak üzere, sınıf projeleri veya genel kullanım için şablon olarak hizmet etmek üzere sağlanmıştır.

Sunum yapan kişi, XGBoost ve LightGBM kitaplıklarını kullanarak gradyan artırmayı tartışır. XGBoost kitaplığı benzerdir, ancak scikit-learn'den biraz daha karmaşıktır. NumPy dizilerinin DMatrix biçimine dönüştürülmesini gerektirir ve modeli eğitmek için fit yöntemini kullanmak yerine train yöntemi kullanılır. Sınıf üyeliği olasılıklarını elde etmek için tahmin yöntemi çağrılarak tahminler yapılabilir. Öte yandan, Microsoft LightGBM kitaplığı, scikit-learn'e benzer bir API'ye sahiptir. Gradyan artırma makinesini takmadan önce hiperparametrelerin ayarlanması gerekir ve doğruluğu hesaplamak için skor yöntemi kullanılabilir. Sunulan durumda, model, hiperparametreleri ayarlamadan %100 eğitim doğruluğu sergiler.

Video, özellikle XGBoost ve LightGBM gibi kitaplıkların kullanımı yoluyla gradyan artırma tekniklerinin etkinliğini vurgulayarak sona eriyor. Bu kitaplıklar, gradyan artırma modellerini uygulamak için güçlü araçlar sağlar ve performansı ve doğruluğu artırmak için çeşitli optimizasyonlar sunar.

Ek olarak sunum yapan kişi, gradyan artırmada hiperparametre ayarının önemini kabul eder. Öğrenme oranı, ağaç sayısı ve ağaç derinliği gibi farklı hiperparametreler, modelin performansını önemli ölçüde etkileyebilir. Bu nedenle, belirli bir sorun için en uygun ayarları bulmak üzere farklı hiperparametre yapılandırmalarıyla denemeler yapılması önerilir.

Gradyan yükseltmeyi daha fazla keşfetmek için video, XGBoost, LightGBM ve diğer ilgili uygulamalarla ilgili araştırma makalelerine ve belgelere başvurmayı önerir. Bu kaynaklar, gradyan artırmanın algoritmaları, teknikleri ve gelişmiş özellikleri hakkında derinlemesine açıklamalar sağlar.

Özet olarak, video, XGBoost ve LightGBM gibi kitaplıkları kullanan gradyan güçlendirmeye, kavramlarına ve pratik uygulamalarına kapsamlı bir genel bakış sağlar. Karmaşık tablo veri kümelerini işleme yeteneği, yarışmalardaki etkinliği ve tahmin doğruluğunu iyileştirme potansiyeli gibi gradyan artırmanın avantajlarını vurgular. Uygulayıcılar, gradyan artırmanın arkasındaki ilkeleri ve teknikleri anlayarak, çeşitli regresyon ve sınıflandırma problemlerinin üstesinden gelmek için bu güçlü algoritmadan yararlanabilirler.

  • 00:00:00 Gradyan artırma kavramı, karar ağaçlarını ve farklılaştırılabilir bir kayıp işlevini kullanan yükseltmenin modern bir versiyonu olarak tanıtıldı. AdaBoost'a benzer şekilde, gradyan artırma, zayıf öğrenicileri güçlü bir model olmaya teşvik eden sıralı bir süreçtir. Bununla birlikte, ikisi arasındaki temel fark, eğitim örnekleri veya sınıflandırıcılar için ağırlıklar kullanılmadan daha derin ağaçlar kullanılarak gradyan artırma ile karar ağaçlarının nasıl sığdırıldığı konusunda yatmaktadır. Gradyan artırmanın ana fikri, modeli geliştirmek için kayıp fonksiyonundan gradyanların kullanılmasıdır, bu da tablo veri setlerinde daha iyi performansa yol açar ve onu yarışmalar için popüler bir algoritma haline getirir. Bu bölüm, bir temel ağaç oluşturmaktan başlayarak üç temel adımda gradyan güçlendirmeye kavramsal bir genel bakış sunar.

  • 00:05:00 Regresyon bağlamında gradyan artırmayı öğreniyoruz. İlk olarak, bu örnekte bir ev fiyatı tahmin problemi olan, sadece kök düğümden oluşan bir temel ağaçla başlıyoruz. Hedefi, bu durumda eğitim setindeki dört evin fiyatlarının ortalaması olan o düğümdeki ortalamaya göre tahmin ediyoruz. Daha sonra, önceki ağacın tahmin hatasına dayalı olarak bir sonraki ağacı oluştururuz ve bu tahmin edilen hatayı kullanarak yeni bir ağaca sığdırırız. Birinci ve ikinci adımdaki ağaçları birleştiriyoruz ve işlemi birkaç kez tekrarlayarak ardışık turlardaki hatalara ağaçları uyduruyoruz. Tahmin her zaman önceki ağaçların tahmininin bir kombinasyonudur ve aynı kavram, farklı bir kayıp fonksiyonu kullanarak sınıflandırma için geçerlidir.

  • 00:10:00 Eğitmen, daha iyi tahminler yapmak için gradyan artırmanın nasıl kullanılacağını açıklıyor. Süreç, ilk tahmin yapmak için bir karar ağacı oluşturmayı, önceki ağacın hataları hakkında daha iyi tahminler yapmak için sözde artıkları hesaplamayı ve birinci adımdaki ağaçları ikinci adımdaki ağaçlarla birleştirmeyi içerir. Eğitmen bu sürecin konut fiyatlarını içeren basit bir örnek üzerinde nasıl uygulanabileceğini açıklar ve karar ağacının nasıl görünebileceğini gösterir. Basit karar ağacını artıklara dayalı yenisiyle birleştirerek, model daha iyi ve daha doğru tahminler yapabilir.

  • 00:15:00 Ardışık olarak tüm ağaçların tahminlerini toplayarak birleştirdiğimiz bir toplama modeli olarak gradyan artırma kavramı tartışılıyor. Yöntem ayrıca öğrenme oranı veya adım boyutu olarak kullanılan bir alfa değeri içerir. Degrade artırma, ikinci adımı birden çok kez tekrarlayarak ve fazla sığdırmayı önlemek için küçük bir adım boyutuyla yavaşça oluşturarak gerçekleştirilir. Bu nedenle, yeni bir ağaç sürekli olarak önceki tahminin hatalarına uydurulur ve bu da tahmin için başka bir sütun verir. İşlem, hiperparametre ayarına göre belirli sayıda ağaç tamamlanana kadar devam eder.

  • 00:20:00 Konuşmacı, hem regresyon hem de sınıflandırma için kullanılan gradyan artırma algoritmasını açıklıyor. Algoritma, eğitim veri setinin giriş veri setinin, türevlenebilir bir kayıp fonksiyonu ile birlikte kullanıldığı genel bir prosedürü takip eder. İlk adımda, model bir kök düğüm olarak başlatılır ve ardından ikinci adımda algoritma birden çok ağaca uyar ve uç düğümler oluşturur. Konuşmacı daha sonra her düğümde tahmin ve kayıp hesaplaması ile ilgili daha fazla ayrıntıya girer. Algoritma, istenen ağaç sayısına ulaşılana kadar tekrar edilebilir ve genel amaç, kaybı en aza indirmektir.

  • 00:25:00 Konuşmacı, güncellenen modeli T katına ulaşana kadar belirlemek için önceki modeli ve yeni tahmin adımını öğrenme oranı veya adım boyutuyla ağırlıklandırarak birleştirerek mevcut modelin nasıl hesaplanacağını açıklar. İlk olarak, sözde kalıntı hesaplanır, ardından gerçek etikete ve önceki turun model tahminlerine dayalı olarak kaybın türevi hesaplanır. Daha sonra rezidüler hesaplanarak ilgili düğüm bazında kaybı en aza indiren tahmin değeri belirlenir ve ardından model tekrar güncellenir. Bu işlem T modellerine ulaşılana kadar tekrarlanır. Konuşmacı, sınıflandırma için kullanılabilecek negatif log-olasılık kaybı gibi türevlenebilir kayıp fonksiyonlarından bahsetse de, bu sınıfta toplam kare hatası veya ortalama kare hatası üzerinde odaklanırlar.

  • 00:30:00 Konuşmacı, gradyan güçlendirme ile ilgili adımları ve pratikte nasıl kullanıldığını tartışır. İlk adım, ifadeyi en aza indiren tahmini bularak belirli bir düğümdeki tüm eğitim örnekleri için kaybı en aza indirmeyi içerir. İkinci adım, T ağaçları için bir döngü kullanır ve her düğümdeki örneklerin ortalamasını alarak her yaprak düğümündeki tahmini hesaplar. Önceki modeli içeren ortalama tahmine yeni bir terim eklenir. Her ağaç için öğrenme oranı genellikle aynıdır ve her ağaç için tahminler toplanır. Öğrenme oranının amacı, aşırı uydurmayı önlemek için sözde artıkları azaltmaktır. Son olarak, konuşmacı pratikte kullanılan gradyan artırmanın birkaç ilginç yönüne kısaca değiniyor.

  • 00:35:00 Konuşmacı, çoklu işlemlerden veya bilgi işlem düğümlerinden yararlanamadığı için verimliliğini sınırlayabilen sıralı bir algoritma olarak hızlandırmanın potansiyel olumsuzluklarını tartışıyor. Bununla birlikte, gradyan artırma sürecini daha verimli hale getirmek için birkaç numara kullanan xgBoost adlı bir artırma uygulaması vardır. Aslında, Kaggle'da 2015'ten 2017'ye kadar yayınlanan 29 Zorluk Kazandıran Çözüm arasından 17'si xgBoost kullandı. Sekizi, modeli eğitmek için yalnızca xgBoost'u kullanırken, diğerlerinin çoğu xgBoost'u sinir ağlarıyla birleştirdi veya popüler bir toplu oylama tekniği olan yığınlamayı kullandı. Konuşmacı daha sonra, xgBoost'un etkinliğine katkıda bulunan benzersiz özelliklere sahip olduğunun gösterildiği, farklı güçlendirme uygulamalarını karşılaştıran bir makaleden iki tablo sunar.

  • 00:40:00 Konuşmacı, yaklaşık küresel, çekirdek dışı öğrenme, seyreklik farkındalığı ve paralellik gibi çeşitli avantajlar sunan bir gradyan artırma çeşidi olan Ekstra Güçlendirmenin özelliklerini tartışıyor. Extra Boost, dağıtılan verilerin alt kümelerinin özet istatistiklerine dayalı olarak en iyi ayrımı bulmak için yaklaşık yöntemler uygular. Konuşmacı, Extra Boost ve diğer gradyan boost uygulamalarının performansını tam açgözlü yöntem üzerinde karşılaştırır ve Extra Boost'un bir uygulamayla aynı performansa sahip olduğunu, ancak ağaç başına önemli ölçüde azaltılmış süre ile onu hiperparametre ayarı için daha çekici hale getirdiğini gösterir.

  • 00:45:00 Video, temelde büyük veri kümeleriyle iyi çalışan ölçeklenebilir bir gradyan güçlendirme uygulaması olan Ekstra Yükseltmeyi tartışıyor. Video, normalleştirme, eksik özellikler için atama teknikleri ve önbelleğe alma dahil olmak üzere Extra Boost'un normal gradyan artırma tekniklerine göre sahip olduğu çeşitli iyileştirmeleri açıklıyor. Bu iyileştirmeler, fazla uydurmanın azaltılmasına yardımcı olur ve Extra Boost'un genel performansını iyileştirebilir. Ayrıca Extra Boost, özellik alt kümelerini ve eğitim örneklerini rasgele seçmek için sütun ve satır tabanlı alt örneklemeyi kullanır; bu, fazla uydurma ve hesaplama verimliliğini azaltmaya yardımcı olabilir. Video, tekniklerinin daha ayrıntılı bir açıklaması için Ekstra Güçlendirme hakkındaki makaleyi okumanızı önerir.

  • 00:50:00 Konuşmacı, aşırı uydurmayı azaltabilen ve tahmin doğruluğunu artırabilen, gradyan artırma makinelerinin daha yeni bir uygulaması olan Extra Boost'a genel bir bakış sağlar. Konuşmacı, tam açgözlü algoritma ve histogram tabanlı bölme bulma da dahil olmak üzere bölmeleri bulmak için farklı teknikleri tartışıyor. İkinci yaklaşım, sürekli bir özelliği, eğitim hızını artırabilen ve bellek kullanımını azaltabilen ayrı bir histograma bindirmeyi içerir. Konuşmacı ayrıca Extra Boost'u daha da hızlı ve daha doğru olan başka bir uygulama olan Light GBM ile karşılaştırır. Light GBM, histogram tabanlı bölünmüş bulmayı kullanır ve Extra Boost'a kıyasla daha düşük bellek kullanımı ve daha yüksek tahmin doğruluğu sunar.

  • 00:55:00 Konuşmacı, scikit-learn'de gradyan artırıcı sınıflandırıcıların uygulanmasını tartışıyor ve scikit-learn'ün yeni bir sürümüne eklenen yeni bir gradyan artırıcı sınıflandırıcıyı tanıtıyor. Yeni sınıflandırıcı, LightGBM'den ilham alan histogram tabanlı bölmeyi kullanır ve önceki sınıflandırıcıdan daha hızlı hale getirir. Konuşmacı, hangisinin en iyi performansı gösterdiğini belirlemek için hem gradyan artırıcı sınıflandırıcıların kullanılmasını hem de bunların XGBoost ile karşılaştırılmasını önerir. Konuşmacı ayrıca izleyicilere sınıf projelerinde veya genel kullanımda şablon olarak kullanmaları için kod örnekleri sağlar. Örnekler, scikit-learn'de gradyan artırma sınıflandırıcısının uygulanmasını ve yeni histogram gradyan artırma sınıflandırıcısını kullanmayı içerir.

  • 01:00:00 Sunum yapan kişi, XGBoost ve LightGBM kitaplıklarını kullanarak gradyan artırmayı tartışıyor. XGBoost kitaplığı benzerdir, ancak scikit-learn'den biraz daha karmaşıktır ve NumPy dizilerinin D matris formatına dönüştürülmesini gerektirir. Sunucu keyfi parametreler ayarlar ve modeli eğitmek için sığdırmak yerine nokta dizisini kullanır. Daha sonra model, sınıf üyeliği olasılıklarını tahmin etmek için tahmin çağırabilir. Microsoft LightGBM kitaplığı, scikit-learn'e benzer bir API'ye sahiptir ve gradyan artırma makinesini takmadan ve doğruluğu hesaplamak için skor yöntemini kullanmadan önce hiperparametrelerin ayarlanmasını gerektirir. Bu durumda model, hiperparametreleri ayarlamadan %100 eğitim doğruluğu sergiler.
7.5 Gradient Boosting (L07: Ensemble Methods)
7.5 Gradient Boosting (L07: Ensemble Methods)
  • 2020.10.27
  • www.youtube.com
In this video, we will take the concept of boosting a step further and talk about gradient boosting. Where AdaBoost uses weights for training examples to boo...
 

7.6 Rastgele Ormanlar (L07: Topluluk Yöntemleri)



7.6 Rastgele Ormanlar (L07: Topluluk Yöntemleri)

Harika! Sonunda Ders 5'in en ilginç kısmı olan son bölümüne ulaştık: kutsal boru hatlarını öğrenin. Kutsal öğrenme ardışık düzenleri, çeşitli veri işleme ve tahmin adımlarını birleştirerek onları gerçek dünya uygulamalarında son derece yararlı kılan nesneler veya sınıflardır. Ardışık düzenlerin nasıl çalıştığını anlamanıza yardımcı olması için ana hat akış şemasına bir göz atalım. Şimdilik tüm inceliklere girmeyeceğim, ancak boru hattı örneğini verdikten kısa bir süre sonra tekrar ele alacağız.

Özünde, bir ardışık düzen, bir tahmin edici ve dönüştürücü API olarak düşünülebilir. Bir tahmin ediciye benzer şekilde, bir boru hattının eğitim setinde kullanılabilecek bir uyum yöntemi vardır. Dahili olarak, çoklu sığdırma ve dönüştürme adımları gerçekleştirilir, ardından son bir sığdırma adımı gelir. Ardışık düzende yer alan bileşenlere bağlı olarak, veri ölçeklendirme (örn. standardizasyon veya min-maks ölçeklendirme) veya boyut azaltma gibi bir dizi işlem tanımlayabilir ve ardından bir öğrenme algoritması eğitebilirsiniz. İşlem hattı daha sonra test setinde kullanılabilecek bir tahmine dayalı model döndürür.

Tahmin aşamasında, test setinde tahmin yöntemini çağırdığınızda, işlem hattı, eğitim setinde gerçekleştirilen aynı ölçeklendirmeyi uygulamak için dahili olarak transform'u kullanır. Ayrıca, bir sınıflandırıcı durumunda sınıf etiketlerinin döndürülmesi gibi son tahmin adımını da uygular. Bu kavramı göstermek için basit bir ardışık düzen kod örneğini inceleyelim.

Burada, kutsal öğrenmenin scikit-learn.dot.pipeline alt modülünden make_pipeline işlevini kullanarak bir işlem hattı oluşturuyorum. Ardışık düzen oluşturmanın farklı yolları olsa da bu yöntem oldukça uygundur. Bu örnekte, bir sınıflandırıcı ve bir standart ölçekleyiciden oluşan basit bir boru hattı inşa ediyorum. Önceki videoda tartışıldığı gibi standart ölçekleyici, verileri sıfır ortalama ve birim varyansa sahip olacak şekilde standartlaştırır. Boru hattını oluşturduktan sonra, boru hattını eğitim verileri üzerinde eğitmek için fit yöntemini kullanabiliriz. Daha sonra test setinde tahminler yapmak için tahmin yöntemini kullanabiliriz.

Şimdi, fit yönteminin ardışık düzende nasıl çalıştığını daha ayrıntılı inceleyelim. Fit çağrıldığında, önce standart ölçekleyici uygulanır. Eğitim verilerinden ortalama ve standart sapmayı öğrenir ve bunları verileri ölçeklendirmek için kullanır. Bu süreç, standart ölçekleyicinin ölçeklenen verileri hesapladığı ve bir sonraki adıma aktardığı bir sığdır ve dönüştür adımını içerir. Bu durumda, bir sonraki adım K en yakın komşu sınıflandırıcıdır. K en yakın komşu sınıflandırıcı, bu dört adımı etkili bir şekilde bir araya getirerek standartlaştırılmış verileri alır. pipe.fit çağrıldığında, tüm bu adımlar otomatik olarak gerçekleştirilir ve bizi bunları tek tek yürütme zahmetinden kurtarır.

Tahmin aşaması sırasında, uygun adım olmaması dışında aynı işlem gerçekleşir. Bunun yerine işlem hattı, tutarlılığı sağlamak için test verilerini ölçeklendirmek için eğitim seti parametrelerini yeniden kullanır. Daha sonra ölçeklendirilmiş test verilerini tahmin için sınıflandırıcıya iletir.

Bu süreci daha iyi görselleştirmek için akış şemasını tekrar gözden geçirelim. Bir kullanıcı olarak, yalnızca fit ve tahmin yöntemlerini kullanmanız gerekir. Fit'i çağırarak, işlem hattı otomatik olarak dönüştürme adımını başlatır. Boru hatlarındaki kuralın, sınıflandırıcı olarak son adıma sahip olmak olduğuna dikkat etmek önemlidir. Yalnızca son adım sığmayı çağırırken, önceki tüm adımlar sığdır ve dönüştür. Sonuç olarak, bir boru hattı, standart ölçekleyici veya hatta temel bileşen analizi (PCA) gibi boyut azaltma teknikleri gibi birden fazla transformatöre sahip olabilir. Ancak, son adım olarak yalnızca bir sınıflandırıcıya sahip olabilir. Bu tasarım, ardışık düzenin uyumluluğunu ve işlevselliğini sağlar.

İşlem hattını iş başında göstermek için, tutma yöntemini kullanarak basit bir model seçim senaryosunu keşfedelim. Lütfen bunun sadece basit bir gösteri olduğunu unutmayın ve sonraki derslerde K-katlı çapraz doğrulama gibi daha gelişmiş model seçim yöntemlerini ele alacağız.

Tutma yöntemi, verileri iki alt kümeye ayırmayı içerir: bir eğitim seti ve bir doğrulama seti. Eğitim seti boru hattını eğitmek için kullanılırken, doğrulama seti performansını değerlendirmek ve en iyi modeli seçmek için kullanılır.

Burada, uzatma yöntemini bir ardışık düzen ile nasıl uygulayabileceğinize dair bir örnek verilmiştir:

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.pipeline import make_pipeline
from sklearn.metrics import accuracy_score

# Load the iris dataset
data = load_iris()
X = data.data
y = data.target

# Split the data into training and validation sets
X_train, X_val, y_train, y_val = train_test_split(X, y, test_size= 0.2 , random_state= 42 )

# Create a pipeline
pipeline = make_pipeline(
    StandardScaler(),
    KNeighborsClassifier(n_neighbors= 3 )
)

# Train the pipeline
pipeline.fit(X_train, y_train)

# Make predictions on the validation set
y_pred = pipeline.predict(X_val)

# Evaluate the pipeline's accuracy
accuracy = accuracy_score(y_val, y_pred)
print(f "Validation accuracy: {accuracy}" )
Bu örnekte, önce iris veri setini yüklüyoruz. Ardından, train_test_split işlevini kullanarak verileri bir eğitim kümesine (X_train ve y_train) ve bir doğrulama kümesine (X_val ve y_val) ayırdık.

Daha sonra make_pipeline kullanarak bir boru hattı oluşturup istenilen adımlara geçiyoruz. Bu durumda, verileri standartlaştırmak için bir StandardScaler ve sınıflandırıcı olarak n_neighbors=3 ile bir KNeighborsClassifier dahil ediyoruz.

Eğitim verilerinde (X_train ve y_train) fit yöntemini çağırarak işlem hattını eğitiyoruz.

Eğitimden sonra, tahmin yöntemini çağırarak doğrulama kümesi (X_val) üzerinde tahminler yapmak için işlem hattını kullanırız.

Son olarak, correct_score işlevini kullanarak tahmin edilen etiketleri (y_pred) gerçek etiketlerle (y_val) karşılaştırarak ardışık düzenin doğruluğunu değerlendiririz.

Bu, model seçimi için uzatma yöntemiyle bir ardışık düzen kullanmanın temel bir örneğidir. Çapraz doğrulama gibi işlem hattı performansının daha sağlam değerlendirmelerini sağlayabilen daha gelişmiş tekniklerin olduğunu unutmayın.

7.6 Random Forests (L07: Ensemble Methods)
7.6 Random Forests (L07: Ensemble Methods)
  • 2020.10.28
  • www.youtube.com
This video discusses random forests, how random forests are related to bagging, and why random forests might perform better than bagging in practice.-------T...
 

7.7 İstifleme (L07: Toplu Yöntemler)



7.7 İstifleme (L07: Toplu Yöntemler)

Evet, uzun, çok uzun bir yedi ders oldu. Ve son olarak stacking hakkında konuştuğumuz son videomuza geliyoruz.

Bu ders boyunca pek çok konuyu ele aldık. Önyükleme örneklerine karar ağaçları yerleştirdiğimiz çoğunluk oylamasını ve torbalamayı tartıştık. Ayrıca, önceki öğrenicilerin hatalarını veya hatalarını temel alarak derin öğrenicileri yerleştirdiğimiz güçlendirmeyi, ayrıca artıkları ve gradyan güçlendirmeyi de ele aldık. Ek olarak, her düğümde rastgele özellik alt kümeleri kullanarak normal paketlemeye göre performansı artıran rastgele ormanları araştırdık. Ve şimdi, nihayet istifleme hakkında konuşacağız.

İstifleme, çoğunluk oylamasına benzer, ancak yalnızca çoğunluk oylaması yapmak yerine diğer sınıflandırıcıların tahminlerini birleştiren bir meta sınıflandırıcı ile. İstiflemenin detaylarına dalalım.

Devam etmeden önce size bu videonun konusunu hatırlatayım: istifleme. Gereksiz slayt için özür dilerim, ancak David H. Wolpert'in 1992'de yayınlanan 'Stacked Generalization' başlıklı makalesinde önerdiği yığınlama algoritmasının temellerine odaklanalım. Eski bir makale olmasına rağmen, daha yeni bir kitapta kullanılan gösterim Kaynak göstermem anlamayı kolaylaştırıyor. Öyleyse, istiflemenin bu temel versiyonuyla başlayalım.

Bu algoritmada, problemi oluşturan girdi ve çıktıyı tanımlarız. 'n' boyutunda bir eğitim veri kümesiyle çalışıyoruz. 'x_i' olarak belirtilen her özellik vektörü, 'm' boyutlu bir vektördür. Benzer şekilde, eğitim örneklerine karşılık gelen sınıf etiketleri 'y_i' olarak gösterilir. Bu algoritmanın çıktısı, ikinci sınıflandırıcı olarak adlandıracağımız bir topluluk sınıflandırıcıdır.

Şimdi, istifleme ile ilgili adımlara odaklanalım. Birinci adım, birinci düzey sınıflandırıcıları öğrenmektir. Bu sınıflandırıcılara uyması için birden 't'ye kadar bir döngü kullanıyoruz. Bu nedenle, 'X' giriş verileri ve 'Y' sınıf etiketleri üzerinde eğitilmiş, 'h_1' ila 'h_t' olarak gösterilen bir sınıflandırıcı koleksiyonumuz var.

İkinci adıma geçerek, eğitim setinden yeni veri setleri oluşturuyoruz. Her eğitim örneği 'x_i' için, 'x_i prime' değiştirilmiş özellik vektörünü içeren yeni bir veri kümesi oluşturuyoruz. Değiştirilmiş öznitelik vektörü 'x_i prime', birinci düzey sınıflandırıcıların tahminlerini içerir. Bu tahminler, sınıf etiketleri veya hatta sınıf üyelik olasılıkları olabilir. Bu tahminleri kullanarak, daha önce tartıştığımıza benzer şekilde çoğunluk oylaması yapabiliriz. Ancak burada durmuyoruz; üçüncü adıma geçiyoruz.

Üçüncü adımda, çoğunluk oylaması yapmak yerine, birinci seviye sınıflandırıcılardan gelen tahminlere dayanan ikinci seviye bir sınıflandırıcı öğreniyoruz. 'x_i prime', her sütunun 'h_1'den 'h_t'ye kadar olan sınıflandırıcılardan gelen tahminleri içerdiği değiştirilmiş bir tasarım matrisini temsil eder. Sınıf etiketlerini veya sınıf üyelik olasılıklarını dikkate alarak bu tahminlere bir sınıflandırıcı sığdırabiliriz. Bu ikinci düzey sınıflandırıcı, bu tahminler üzerinde eğitilecektir.

Temel istifleme prosedürünün bir zayıflığı, fazla takmaya karşı hassasiyetidir. Birinci düzey sınıflandırıcılardan herhangi birinin eğitim setine fazla uyması, meta sınıflandırıcının performansını olumsuz yönde etkileyebilir ve sistemin genel olarak aşırı uyum sağlamasına yol açabilir. Bunu ele almak için, çapraz doğrulamayı dahil ederek istifleme prosedürünü geliştirebiliriz.

Çapraz doğrulama, veri kümesini birden çok alt kümeye böldüğümüz ve modeli bu alt kümelerin farklı kombinasyonları üzerinde eğittiğimiz bir tekniktir. Bu, aşırı uydurmayı azaltmaya ve daha güvenilir bir performans tahmini elde etmeye yardımcı olur. Yaygın olarak kullanılan bir varyant, veri setinin 'k' altkümeye veya kıvrıma bölündüğü k-katlı çapraz doğrulamadır. Modeli 'k-1' kıvrımlarında eğitiyor ve kalan kattaki performansını değerlendiriyoruz. Bu işlem, her seferinde doğrulama seti olarak farklı bir kat kullanılarak 'k' kez tekrarlanır. Daha sonra, modelin performansına ilişkin daha sağlam bir tahmin elde etmek için her katlamadan elde edilen performans sonuçlarının ortalaması alınabilir.

İstifleme bağlamında, birinci düzey sınıflandırıcıların eğitimini iyileştirmek için çapraz doğrulamayı kullanabiliriz. Onları tüm eğitim setinde eğitmek yerine, verileri 'k' katına böleriz. Her kat için, birinci düzey sınıflandırıcıları kalan 'k-1' katlar üzerinde eğitiyoruz ve bunları, dışarıda bırakılan kat üzerinde tahminler yapmak için kullanıyoruz. Bu süreç, her kat için tekrarlanır ve tüm eğitim seti için tahminlerle sonuçlanır.

Tüm eğitim seti için birinci seviye sınıflandırıcılardan gelen tahminleri aldıktan sonra, ikinci seviye sınıflandırıcıyı bu tahminler üzerinde eğittiğimiz istifleme algoritmasının üçüncü adımına geçebiliriz. Çapraz doğrulamayı dahil ederek, ikinci seviye sınıflandırıcının birinci seviye sınıflandırıcılardan gelen çeşitli ve güvenilir tahminler üzerinde eğitildiğinden emin olarak fazla uydurma riskini azaltıyoruz.

İkinci düzey sınıflandırıcıyı eğittikten sonra, onu yeni, görülmemiş veriler üzerinde tahminler yapmak için kullanabiliriz. Tahminler, tipik olarak, tahminlerini elde etmek için girdiyi birinci seviye sınıflandırıcılardan besleyerek ve ardından bu tahminleri ikinci seviye sınıflandırıcı için girdi olarak kullanarak elde edilir. İkinci düzey sınıflandırıcının çıktısı, istifleme topluluğunun son tahminini temsil eder.

Yığınlama, genel performansı iyileştirmek için çoklu sınıflandırıcıların güçlü yönlerinden yararlanan güçlü bir topluluk öğrenme tekniğidir. İstifleme, birden çok sınıflandırıcının tahminlerini birleştirerek verilerin farklı yönlerini yakalayabilir ve daha doğru tahminler yapabilir. Farklı problem alanlarına ve sınıflandırıcı türlerine uyarlanabilen esnek ve çok yönlü bir tekniktir.

Sonuç olarak, istifleme, basit çoğunluk oylamasının ötesine geçen bir toplu öğrenme yöntemidir. Birden çok sınıflandırıcının tahminlerini ikinci düzey bir meta sınıflandırıcı aracılığıyla birleştirerek daha sofistike karar vermeye olanak tanır. Çapraz doğrulamayı dahil ederek, yığınlama algoritmasının sağlamlığını ve genelleme yeteneğini geliştirebiliriz. İstifleme, makine öğreniminde değerli bir araçtır ve tahmin performansını artırmak için çeşitli uygulamalarda yaygın olarak kullanılmaktadır.

7.7 Stacking (L07: Ensemble Methods)
7.7 Stacking (L07: Ensemble Methods)
  • 2020.10.28
  • www.youtube.com
This video explains Wolpert's stacking algorithm (stacked generalization) and shows how to use stacking classifiers in mlxtend and scikit-learn.-------This v...
 

8.1 Fazla uydurma ve yetersiz uydurmaya giriş (L08: Model Değerlendirmesi Bölüm 1)



8.1 Fazla uydurma ve yetersiz uydurmaya giriş (L08: Model Değerlendirmesi Bölüm 1)

Herkese iyi günler! Umarım hepiniz iyisinizdir. Bugün sizinle paylaşacağım bazı heyecan verici haberlerim var, o yüzden hemen başlayalım.

Her şeyden önce, proje tekliflerinizi derecelendirmeyi bitirdim ve şunu söylemeliyim ki, gördüğüm fikir ve planlardan gerçekten çok memnun kaldım. Her birinizin projelerinize çok kafa yorduğunuz ve proje sunumları ve raporların Aralık ortasına kadar teslim edilmesi için gelecek haftalar için net bir vizyona sahip olduğunuz açık. Önerilerinize giren ayrıntı ve düşüncelilikten gerçekten etkilendim.

Bununla birlikte, herhangi biriniz ek geri bildirim veya açıklamaya ihtiyaç duyarsa veya ek teknikleri keşfetme konusunda rehberlik almak isterseniz, lütfen bana ulaşmaktan çekinmeyin. Size elimden gelen her şekilde daha fazla yardım ve destek sağlamaktan mutluluk duyuyorum. Bana bir e-posta gönderin veya bir toplantı planlayın, size yardımcı olmak için orada olacağım.

Daha iyi haberlere geçelim, topluluk yöntemleri dersimizi başarıyla tamamladık, bu da yeni ve heyecan verici bir konuya başlamanın zamanı geldiği anlamına geliyor. Gelecek ders dizisinde, model değerlendirmeye odaklanacağız. Çeşitli makine öğrenimi sınıflandırıcılarını ve algoritmalarını tanıttığımız önceki derslerin aksine, bu sefer bu algoritmaların performansını adil bir şekilde nasıl değerlendireceğimizi keşfedeceğiz.

Bu yeni dizi boyunca, bir dizi konuyu ele alacağız. Yetersiz uydurma ve fazla uydurma kavramlarını ve bunların bir kayıp fonksiyonunun yanlılık ve varyans ayrışımıyla nasıl ilişkili olduğunu anlayarak başlayacağız. Daha sonra, modelleri etkili bir şekilde karşılaştırmamıza izin veren çapraz doğrulama yöntemlerini inceleyeceğiz. Ek olarak, belirli veri kümeleri üzerindeki performanslarını belirlemek için farklı makine öğrenimi algoritmalarını karşılaştırma tekniklerini tartışacağız. Model seçimi ile algoritma seçimi arasında ayrım yapmak önemlidir ve bu ayrımı daha ayrıntılı olarak inceleyeceğiz.

Daha fazla uzatmadan, model değerlendirmeye giriş ile başlayalım ve fazla uydurma ve yetersiz takma dünyasının derinliklerine inelim. Bu derste (sekizinci ders), yanlılık ve varyans ayrıştırmasını ve bunun fazla uydurma ve yetersiz uydurma ile ilişkisini tartışacağız. Bu kavramları kapsamlı bir şekilde anlamak için hem kare hata kaybının (gerilemeyle ilgili) hem de 01 kaybının (sınıflandırmayla ilgili) sapma ve varyans ayrıştırmasını analiz edeceğiz. Ayrıca, ayrıştırmada kapsanan istatistiksel önyargının ötesine geçerek, makine öğrenimindeki farklı önyargı türlerine değineceğiz.

Ders materyalini derinlemesine incelemeden önce, bir adım geriye gidelim ve kursta nerede olduğumuzu kısaca özetleyelim. Giriş, Python, NumPy ve scikit-learn gibi hesaplamalı yönlerin yanı sıra ağaç tabanlı yöntemleri ele aldık. Ayrıca ağaç tabanlı yöntemlerin alaka düzeyini ve topluluk yöntemlerinin, özellikle güçlendirme ve rastgele ormanların endüstrideki popülaritesini tartıştık. Şimdi, model değerlendirmeye odaklanarak, güven aralıkları, çapraz doğrulama, model seçimi, algoritma seçimi ve performans ölçümleri gibi çeşitli alt konuları keşfedeceğiz. Sonlara doğru, boyut indirgeme ve denetimsiz öğrenmeye değineceğiz.

Nispeten özlü olduğu için, bu dersin topluluk yöntemleriyle ilgili bir öncekinden daha kısa olacağı konusunda sizi temin ederim. Bununla birlikte, model değerlendirmesini daha iyi anlamamıza yardımcı olacak önemli kavramları içermektedir. Sekizinci dersi oluşturan altı alt konuya bakalım: fazla uydurma, yetersiz uydurma, önyargı ve varyans ayrıştırması, fazla uydurma ve yetersiz uydurma ile ilişki, 01 kaybının önyargı ve varyans ayrıştırması ve makine öğrenimindeki farklı önyargı türlerine genel bakış.

Bu ders boyunca, kısa sınavların ötesinde, sorduğum sorular üzerinde durup düşünmenizi tavsiye ediyorum. Konuyla ilgili benim bakış açımı değerlendirmeden önce durup kendi düşüncelerinizi formüle etmeniz her zaman yardımcı olur. Materyalle bu şekilde etkileşim kurmak, öğrenme deneyiminizi geliştirecektir.

  1. Fazla Sığdırma ve Yetersiz Sığdırma: Makine öğreniminde, aşırı uydurma, bir model eğitim verilerinde son derece iyi performans gösterdiğinde ancak yeni, görünmeyen verilere genellemede başarısız olduğunda meydana gelir. Öte yandan, yetersiz uydurma, bir model çok basit olduğunda ve verilerdeki temel kalıpları yakalayamadığında ortaya çıkar.

Aşırı uyum, mevcut eğitim verisi miktarına göre çok karmaşık ve çok fazla parametreye sahip modellerden kaynaklanabilir. Bu, modelin gerçek temel modeller yerine eğitim verilerindeki gürültüye uymasına yol açar. Öte yandan yetersiz uyum, model verilerdeki kalıpları yakalayacak kadar karmaşık olmadığında ortaya çıkar.

  1. Önyargı ve Varyans Ayrışımı: Önyargı ve varyans, makine öğrenimi modellerinde iki hata kaynağıdır. Önyargı, model farklı eğitim setlerinde eğitildiğinde, tahminlerin gerçek değerlerden ortalama olarak ne kadar uzak olduğunu ölçer. Varyans ise, model farklı eğitim setlerinde eğitildiğinde belirli bir girdi için tahminlerin ne kadar değiştiğini ölçer.

Yanlılık ve varyans matematiksel olarak ayrıştırılabilir. Bir modelin beklenen kare hatası, kare sapması, varyans ve indirgenemez hata olarak ayrıştırılabilir. Kare sapma, modelin tahminleri ile gerçek değerler arasındaki ortalama farkı ölçer. Varyans, belirli bir girdi için modelin tahminlerinin değişkenliğini ölçer. İndirgenemez hata, herhangi bir model tarafından azaltılamayan verilerdeki doğal gürültüyü temsil eder.

  1. Fazla Uyum ve Yetersiz Uyum ile İlişki: Önyargı-varyans değiş tokuşu, fazla uyum ve yetersiz uyum ile yakından ilgilidir. Fazla uydurma genellikle düşük yanlılık ve yüksek varyans ile ilişkilendirilir. Model, eğitim verilerine çok iyi uyuyor, ancak eğitim setindeki küçük dalgalanmalara karşı çok hassas olduğu için yeni verilere genellenemiyor.

Öte yandan yetersiz uyum, yüksek yanlılık ve düşük varyans ile ilişkilidir. Model çok basittir ve verilerdeki temel kalıpları yakalayamaz, bu da hem eğitim hem de test verilerinde düşük performansa neden olur.

  1. 01 Kaybının Önyargı ve Varyans Ayrışımı: Şimdiye kadar, regresyon problemlerinde yaygın olarak kullanılan karesel hata kaybını kullanarak sapma ve varyans ayrıştırmasını tartıştık. Bununla birlikte, sınıflandırma problemlerinde, genellikle yanlış sınıflandırılan örneklerin oranını ölçen 01 kaybını kullanırız.

01 kaybının yanlılık-varyans ayrışımı, karesel hata kaybına benzer, ancak daha karmaşık matematik içerir. Kare sapma, modelin tahminleri ile gerçek etiketler arasındaki yanlış sınıflandırma oranındaki beklenen farkı ölçer. Varyans, belirli bir girdi için yanlış sınıflandırma oranındaki değişkenliği ölçer.

  1. Makine Öğreniminde Farklı Önyargı Türlerine Genel Bakış: Önyargı-varyans ayrıştırmasında tartışılan istatistiksel yanlılığın ötesinde, makine öğreniminde başka önyargı türleri de vardır:
  • Örnekleme Yanlılığı: Eğitim verileri gerçek popülasyonu temsil etmediğinde veya çarpık bir dağılıma sahip olduğunda ortaya çıkar. Bu, eğitim verileri üzerinde iyi performans gösteren ancak daha geniş popülasyona genellenemeyen bir modele yol açabilir.
  • Algoritmik Önyargı: Algoritmaların kendilerinden kaynaklanabilecek önyargıları ifade eder. Örneğin, belirli algoritmalar, maruz kaldıkları eğitim verilerine veya dikkate aldıkları özelliklere bağlı olarak önyargıya daha yatkın olabilir.
  • Bilişsel Önyargı: Veri etiketlemede veya özellik seçiminde öznel yargılama veya bilinçsiz önyargılar gibi insanın karar verme sürecinden kaynaklanabilecek önyargıları ifade eder.

Bu farklı önyargı türlerini anlamak, adil ve güvenilir makine öğrenimi modelleri oluşturmak için çok önemlidir.

Bu, sekizinci derste işlenen ana konuları sonlandırıyor. Gördüğünüz gibi, fazla uydurma, yetersiz uydurma, önyargı ve varyans, model değerlendirmesinde çok önemli bir rol oynayan birbiriyle bağlantılı kavramlardır. Modellerinizi fazla uydurmaktan veya yetersiz uydurmaktan kaçınmak için karmaşıklık ve genelleştirilebilirlik arasında bir denge kurmak önemlidir. Ek olarak, farklı ön yargı türlerinin farkında olmak, makine öğrenimindeki adalet ve etik hususların ele alınmasına yardımcı olabilir.

8.1 Intro to overfitting and underfitting (L08: Model Evaluation Part 1)
8.1 Intro to overfitting and underfitting (L08: Model Evaluation Part 1)
  • 2020.11.03
  • www.youtube.com
This video gives a brief overview of the topics to be covered in the model evaluation lectures. It will then start by giving a brief introduction to overfitt...
 

8.2 Önyargı ve varyansın ardındaki sezgi (L08: Model Değerlendirme Bölüm 1)



8.2 Önyargı ve varyansın ardındaki sezgi (L08: Model Değerlendirme Bölüm 1)

Herkese merhaba! Umarım iyisindir. Hepinizle paylaşmak istediğim bazı heyecan verici haberlerim var. Öncelikle proje tekliflerinizi derecelendirme görevini tamamladım. Dönemin geri kalanı için tüm parlak fikirlerinizi ve planlarınızı okumaktan duyduğum zevki ifade etmeme izin verin. Her birinizin, proje sunumlarına ve raporlarına giden önümüzdeki haftalar için iyi tanımlanmış bir yol haritasına sahip olduğunuzu görmek gerçekten etkileyici.

Herhangi biriniz ek geri bildirime ihtiyaç duyarsa veya herhangi bir konuda açıklamaya ihtiyaç duyarsa, bana e-posta veya başka bir yolla ulaşmaktan çekinmeyin. Projelerinizle ilgili olabilecek ek teknikler için size daha fazla rehberlik ve işaretçiler sağlamaktan çok mutluyum.

Şimdi diğer güzel habere geçelim. Topluluk yöntemleri dersini başarıyla tamamladık ve şimdi yeni ve heyecan verici bir konuya dalmanın zamanı geldi. Gelecek ders dizisinde, model değerlendirme konusunu inceleyeceğiz. Çeşitli makine öğrenimi sınıflandırıcılarını ve algoritmalarını tanıttığımız önceki derslerin aksine, bu sefer bu algoritmaları adil bir şekilde değerlendirmeye odaklanacağız.

Model değerlendirme dersleri birkaç yönü kapsayacaktır. Yetersiz uydurma ve fazla uydurma kavramlarını ve bunların bir kayıp fonksiyonunda yanlılık ve varyans ayrışımı ile ilişkilerini anlayarak başlayacağız. Ardından, modelleri etkili bir şekilde karşılaştırmamıza olanak tanıyan çapraz doğrulama yöntemlerini keşfedeceğiz. Daha sonra, farklı makine öğrenimi algoritmalarını ve bunların belirli veri kümelerindeki performanslarını karşılaştırma tekniklerini tartışacağız.

Uygun bir algoritma seçmeyi içeren model seçiminin de daha ayrıntılı olarak ele alınacağını not etmek önemlidir. Model değerlendirmesinden nasıl farklı olduğunu inceleyeceğiz. O halde, model değerlendirmeye giriş yaparak yolculuğumuza başlayalım ve buradan bilgimizi geliştirmeye devam edelim.

Yeni konuyu derinlemesine incelemeden önce, bu kurstaki ilerlememizi özetlemek için biraz zaman ayıralım. Bir girişle başladık ve Python, NumPy ve scikit-learn gibi önemli hesaplama yönlerini ele aldık. Ayrıca, sektördeki ilgileri hakkında bazı ilginç tartışmalara yol açan ağaç tabanlı yöntemleri de araştırdık.

Şimdi, model değerlendirme aşamasına girerken, yetersiz uyum ve fazla uyum ile ilgili birkaç alt konuyu inceleyeceğiz. Bu özel derste (Sekizinci Ders), önyargı ve varyans ayrışımına ve bunun fazla uydurma ve yetersiz uydurma ile bağlantısına odaklanacağız. Sapma ve varyans bileşenlerinin bir modelin genelleştirme performansını nasıl etkilediğini inceleyeceğiz.

Ek olarak, sınıflandırma problemleriyle daha ilgili olan 0-1 kaybının yanlılık ve varyans ayrıştırmasını keşfedeceğiz. Bu analiz, sınıflandırma görevleri bağlamında fazla uydurma ve yetersiz uydurma konusunda bize daha derin bir anlayış sağlayacaktır.

Bu dersi tamamlamak için, daha önce tartışılan istatistiksel önyargının ötesinde, makine öğrenimindeki farklı önyargı türlerine kısaca değineceğiz.

Şimdi, dikkatimizi fazla uydurma ve yetersiz uydurma ana kavramlarına çevirelim. Makine öğreniminde nihai hedefimiz, iyi genelleme performansı gösteren modeller (gerileme veya sınıflandırma) geliştirmektir. Bu, modellerin genellikle test setinden gelen görünmeyen veriler üzerinde iyi performans göstermesi gerektiği anlamına gelir. Test setindeki performansı da göz önünde bulundursak da, görünmeyen veriler üzerindeki genelleme performansının bir tahmini olarak hizmet eder.

Modeli uydurma veya eğitme olmadığında, eğitim hatasının test hatasına benzer olmasını bekleriz. Ancak modeli eğitim setine uydurduğumuzda genellikle eğitim hatasının test hatasından düşük olduğunu gözlemleriz. Bu, modelin gürültü de dahil olmak üzere eğitim verilerine çok yakın bir şekilde uyarlandığı ve iyimser bir performans tahminine yol açtığı fazla uydurmanın bir sonucudur.

Tersine, yetersiz uyum, model verilerdeki temel kalıpları yakalayamadığında meydana gelir ve bu da hem eğitim hem de test hatalarının yüksek olmasına neden olur. Bu durumda model eksiktir.

özellikler ve hedef değişken arasındaki gerçek ilişkiyi temsil etmek için yeterli karmaşıklık.

Fazla uydurmayı ve yetersiz uydurmayı daha iyi anlamak için önyargı-varyans değiş tokuşunu ele alalım. Önyargı, basitleştirilmiş bir modelle gerçek dünya problemine yaklaşarak ortaya çıkan hatayı ifade eder. Yüksek önyargılı bir model, verilerdeki altta yatan kalıpları aşırı basitleştirme eğilimindedir ve yetersiz uyum ile sonuçlanabilir. Öte yandan varyans, modelin eğitim verilerindeki dalgalanmalara duyarlılığının getirdiği hatayı ifade eder. Yüksek varyanslı bir model, eğitim verilerindeki gürültüyü ve rasgele varyasyonları yakalar ve bu da fazla uydurmaya yol açar.

Yanlılık-varyans takası, beklenen test hatasının üç bileşene ayrıştırılmasıyla gösterilebilir: indirgenemez hata, sapma terimi ve varyans terimi. İndirgenemez hata, herhangi bir model tarafından azaltılamayan verilerdeki doğal gürültüyü temsil eder. Yanlılık terimi, basitleştirilmiş bir modelle gerçek dünya problemine yaklaşarak ortaya çıkan hatayı ölçer ve varyans terimi, modelin eğitim verilerindeki dalgalanmalara duyarlılığından kaynaklanan hatayı ölçer.

Beklenen test hatasını matematiksel olarak şu şekilde ifade edebiliriz:

Beklenen Test Hatası = İndirgenemez Hata + Sapma^2 + Varyans

İdeal olarak, sapma ile varyans arasında beklenen test hatasını en aza indiren bir denge bulmak istiyoruz. Bununla birlikte, bir bileşenin azaltılması genellikle diğerinin artmasına neden olur. Bu değiş tokuş, model seçimi ve değerlendirmesinde çok önemlidir.

Sınıflandırma problemleri bağlamında, sınıflandırma görevlerinde kullanılan yaygın bir kayıp fonksiyonu olan 0-1 kaybının yanlılık-varyans ayrıştırmasını da inceleyebiliriz. 0-1 kaybı, hatayı yanlış sınıflandırılan örneklerin oranı olarak ölçer. 0-1 kaybının sapma-varyans ayrışımı, sınıflandırma modellerindeki hata kaynakları hakkında bilgi sağlar.

İstatistiksel önyargının ötesinde, makine öğrenimi modellerini etkileyebilecek başka önyargı türleri de vardır. Bu önyargılar, örnekleme yanlılığı, ölçüm yanlılığı ve algoritmik yanlılık gibi çeşitli kaynaklardan kaynaklanabilir. Bu önyargıları anlamak, adil ve güvenilir makine öğrenimi sistemleri oluşturmak için çok önemlidir.

Bir sonraki derste, bir modelin genelleme performansını tahmin etmek için güçlü bir teknik olan çapraz doğrulamaya daha derinlemesine dalacağız. Çapraz doğrulama, verilerin farklı alt kümelerinde eğitim ve test sürecini simüle ederek bir modelin görünmeyen veriler üzerinde ne kadar iyi performans göstereceğini değerlendirmemizi sağlar. K-katlı çapraz doğrulama ve tabakalı çapraz doğrulama gibi farklı çapraz doğrulama yöntemlerini keşfedeceğiz ve bunların avantajlarını ve sınırlamalarını tartışacağız.

Bugünün dersi için hepsi bu kadar. Kapsanan materyali gözden geçirmenizi ve bir sonraki oturumumuz için olabilecek herhangi bir sorunuzla hazırlıklı gelmenizi tavsiye ederim. Teşekkürler ve iyi günler!

8.2 Intuition behind bias and variance (L08: Model Evaluation Part 1)
8.2 Intuition behind bias and variance (L08: Model Evaluation Part 1)
  • 2020.11.04
  • www.youtube.com
This video provides some intuition behind the terms bias and variance in the context of bias-variance decomposition and machine learning.-------This video is...
 

8.3 Kare Hatanın Önyargı-Varyans Ayrıştırması (L08: Model Değerlendirme Bölüm 1)



8.3 Kare Hatanın Önyargı-Varyans Ayrıştırması (L08: Model Değerlendirme Bölüm 1)

Bir önceki derste, yanlılık ve varyans hakkında biraz sezgi kazandık ve bir kayıp fonksiyonunun yanlılık-varyans ayrışımına kısaca değindik. Şimdi, bu derste, kare hata kaybına odaklanarak yanlılık-varyans ayrıştırmasını daha derinden inceleyeceğiz. Fazla uydurma ve yetersiz uydurma ile ilişkisini keşfetmeden önce, karesel hata kaybıyla başlamak, onu daha basit ve daha sezgisel hale getirir. Ek olarak, son zamanlarda kendisine adanmış çalışmalarla daha tartışmalı bir konu olan 0-1 kaybının sapma-varyans ayrıştırmasını kısaca tartışacağız. Ancak, daha basit bir anlayış sağladığı için önce karesel hata durumunu inceleyeceğiz.

Kısaca özetlemek gerekirse, önyargı ve varyans önceki videoda daha ayrıntılı olarak ele alındı, ancak ayarı özetlemek için biraz zaman ayırmakta fayda var. Belirli bir model ve belirli bir eğitim seti için öngörülen hedefi temsil eden nokta tahmincisi eksi tahmine bakıyoruz. Beklenti, aynı dağılımdan veya popülasyondan alınan farklı eğitim setleri üzerinden alınır. Bu beklenti, test setindeki belirli bir veri noktası için ortalama tahmini temsil eder.

Yanlılık, ortalama tahminin gerçek hedef değerden ne kadar uzakta olduğunu ölçerken, varyans, her bir tahminin ortalama tahminden ne kadar sapma gösterdiğini nicel olarak ölçer. Varyans teriminin karesi, işareti göz ardı etmek ve tahminlerin ortalama etrafındaki genel dağılımına odaklanmaktır.

Kare hata kaybı (teta - teta şapka)^2 olarak temsil edilebilir; burada teta gerçek değerdir ve teta şapka belirli bir veri noktası için tahmin edilen değerdir. Bu derste, sadece sapma ve varyans terimlerini göz önünde bulundurarak ve gürültü terimini göz ardı ederek karesel hata kaybının sapma-varyans ayrıştırmasına odaklanacağız.

Önyargı-varyans ayrıştırmasına devam etmek için, senaryo için bazı gösterimler ve kurulumlar sunuyoruz. Etiketleri (y) üreten gerçek bir işlevi göz önünde bulunduruyoruz ve modelimiz olarak gerçek veri üreten işleve yaklaşan bir hipotezimiz (h) var. Bir tahmini temsil etmek için y şapkasını kullanırız. Bu terimlerle karesel hata kaybını (y - y hat)^2 olarak ifade edebiliriz. Beklenti simgesi (E) ile karıştırılmaması için, karesi alınmış hatayı (s) olarak gösteririz.

Şimdi kare hatasını yanlılık ve varyans bileşenlerine ayıralım. Bunu başarmak için, tahminin beklentisini eklemek ve çıkarmak için matematiksel bir numara kullanıyoruz. Bunu yaparak, ikinci dereceden ifadeyi genişletir ve üç terime ayırırız: (y^2, -2yy hat, y hat^2).

Ardından, beklentiyi denklemin her iki tarafına da uyguluyoruz. Beklentiyi ilk terime uygulamak, y bir sabit olduğu için değişmeden kalan y^2'yi verir. İkinci terim olan -2yy hat'ın beklentisi sıfırdır, çünkü aynı değeri (y hat'ın beklentisini) kendisinden tekrar tekrar çıkarıyoruz. Üçüncü terim için ise y hat^2 beklentisi, tahminlerin ortalama değerini temsil etmektedir.

Beklentiyi uyguladıktan sonra elimizde iki terim kalıyor: kare sapma ve varyans. Kare sapma (y - E[y hat])^2'dir ve gerçek etiket ile ortalama tahmin arasındaki farkı ölçer. Varyans, E[(y hat - E[y hat])^2] olup, bireysel tahminlerin ortalama tahminden ortalama karesel sapmasını nicelendirir.

Beklentiyi uygularken -2yy şapka teriminin ortadan kaldırıldığını göstermek için adımları yıkıyoruz. Beklentinin -2yy şapkaya uygulanması 2E[yy şapka] ile sonuçlanır. İfadeyi daha da genişleterek, y bir sabit olduğundan, yy hat'ın beklentisinin E[y]E[y hat]'a eşit olduğunu buluruz. Sonuç olarak, -2yy şapka beklentisi, -2E[y]E[y şapka] şeklinde sadeleşir.

Bu terimi karesi alınmış hata(lar)dan çıkarmak bize şunu verir:

s = y^2 - 2yy şapka + y şapka^2 = y^2 - 2yy şapka + y şapka^2 - 2E[y]E[y şapka] + 2E[y]E[y şapka]

Şimdi terimleri yeniden düzenleyelim:

s = (y - E[y şapka])^2 + 2(E[y]E[y şapka] - yy şapka)

E[y]E[y hat]'ın c olarak gösterilen sabit bir değer olduğunu kabul ederek ifadeyi daha da basitleştirebiliriz. Bu nedenle, elimizde:

s = (y - E[y şapka])^2 + 2(c - yy şapka)

Son olarak, ikinci terim olan 2(c - yy şapka)'ya odaklanalım. Bu terim aşağıdaki gibi ayrıştırılabilir:

2(c - yy şapka) = 2c - 2yy şapka

İlk terim, 2c, bir sabittir ve tahmine bağlı değildir. İkinci terim, -2yy hat, gerçek y etiketi ile y hat tahmini arasındaki etkileşimi temsil eder.

Şimdi, kare hata kaybının yanlılık-varyans ayrıştırmasını aşağıdaki gibi özetleyebiliriz:

s = (y - E[y şapka])^2 + 2c - 2yy şapka

İlk terim, (y - E[y hat])^2, kare sapmaya karşılık gelir. Gerçek etiket y ile ortalama tahmin E[y hat] arasındaki tutarsızlığı ölçer.

İkinci terim, 2c, bir sabittir ve kare sapmayı temsil eder. Tahminin seçiminden etkilenmez.

Üçüncü terim, -2yy şapka, varyansı temsil eder. Bireysel tahminlerin ortalama E[y hat] etrafındaki değişkenliğini yakalar. Tahminin seçiminden doğrudan etkilenir.

Bu nedenle, karesel hata kaybının, kareli yanlılık terimine, sabit kareli yanlılık terimine ve bir varyans terimine ayrıştırılabileceği sonucuna varabiliriz.

Önyargı-varyans ayrışmasını anlamak, bir modelin davranışı hakkında içgörü kazanmamıza yardımcı olur. Yüksek sapma, modelin verilerdeki temel kalıpları yakalayamadığı yetersiz uyumu gösterir. Yüksek bir varyans, modelin eğitim verilerine karşı çok hassas olduğu ve görünmeyen verilere iyi bir şekilde genelleme yapamadığı aşırı uydurmayı gösterir.

Önyargı ve varyans bileşenlerini analiz ederek, modellerimizin performansını optimize etmek için model karmaşıklığı, düzenlileştirme teknikleri ve veri toplama stratejileri hakkında bilinçli kararlar verebiliriz.

Bir sonraki derste, yanlılık-varyans ayrıştırmasını 0-1 kaybına kadar genişleteceğiz ve sonuçlarını tartışacağız.

8.3 Bias-Variance Decomposition of the Squared Error (L08: Model Evaluation Part 1)
8.3 Bias-Variance Decomposition of the Squared Error (L08: Model Evaluation Part 1)
  • 2020.11.04
  • www.youtube.com
In this video, we decompose the squared error loss into its bias and variance components.-------This video is part of my Introduction of Machine Learning cou...