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

 

10.1 Çapraz Doğrulama Dersine Genel Bakış (L10: Model Değerlendirme 3)


10.1 Çapraz Doğrulama Dersine Genel Bakış (L10: Model Değerlendirme 3)

Herkese merhaba! Geçen hafta, model performansını değerlendirme ve güven aralıkları oluşturma gibi çeşitli yönleri tartıştığımız önemli model değerlendirme konusuna değindik. Ancak, ele almamız gereken başka temel kavramlar olduğundan, model değerlendirme araştırmamız henüz tamamlanmadı. Uygulamada, sadece belirli bir modeli değerlendirmekle ilgili değil; Ayrıca ilk etapta değerlendirebileceğimiz iyi bir model bulmamız gerekiyor.

Bu derste, hiperparametreleri ayarlama ve farklı hiperparametre ayarlarından kaynaklanan modelleri karşılaştırma yöntemlerini içeren çapraz doğrulama tekniklerine odaklanacağız. Bu süreç model seçimi olarak bilinir. Bugünkü ana vurgumuz çapraz doğrulama üzerinde olacak.

Bu hafta işleyecek çok konumuz var ama merak etmeyin, her konu görece kısa. Bu derste ve bir sonraki derste tartışacaklarımıza genel bir bakış sunmama izin verin:

  1. Model değerlendirmesi için çapraz doğrulama teknikleri: Model performansını değerlendirmek için K-katlı çapraz doğrulamayı ve diğer ilgili teknikleri keşfedeceğiz. Python ve scikit-learn kullanarak kod örnekleri göstereceğim.

  2. Model seçimi için çapraz doğrulama: Hiperparametre ayarı da dahil olmak üzere en iyi modeli seçmek için çapraz doğrulamanın nasıl kullanılacağını tartışacağız. Size scikit-learn'de ızgara arama ve rastgele arama kullanarak model seçiminin nasıl yapıldığını göstereceğim.

  3. Tutumluluk yasası: K-katlı çapraz doğrulama fikrini modelleri basit tutma ilkesiyle birleştiren tek standart hata yöntemi kavramını keşfedeceğiz. Ayrıca, önceki derslerde tartışılan tekrarlanan uzatma yöntemine benzeyen tek standart hata yöntemi ve tekrarlanan K-katlı çapraz doğrulama için kod örnekleri sağlayacağım.

Çapraz doğrulamaya geçmeden önce, hiperparametrelere hızlıca yeniden giriş yapalım ve bunların model parametrelerinden farkını netleştirelim. Ardından, model değerlendirmesi ve diğer ilgili teknikler için K-katlı çapraz doğrulamayı tartışmaya devam edeceğiz. Python ve scikit-learn kullanarak bu tekniklerin pratik uygulamasını inceleyeceğiz. Son olarak, model değerlendirmesi ve model seçimi arasındaki farkı vurgulayarak tartışmamızı model seçimi için çapraz doğrulamaya genişleteceğiz.

Ayrıca, kapsamlı araştırma ve okumalara dayalı, farklı teknikleri belirli görevlere ve sorunlara dayalı olarak kategorize eden bir genel bakış hazırladım. Bu sınıflandırma, farklı tekniklerde gezinmemize ve her birini ne zaman kullanacağımızı anlamamıza yardımcı olacaktır. Genel bakışta sunulan tavsiyelerin, gelecek derslerde ele alacağımız daha fazla tartışmaya tabi olduğunu not etmek önemlidir.

Bu, derse genel bakışı özetler. Şimdi hiperparametrelere yeniden giriş yaparak devam edelim ve ardından çapraz doğrulamanın ayrıntılı bir incelemesini yapalım.

10.1 Cross-validation Lecture Overview (L10: Model Evaluation 3)
10.1 Cross-validation Lecture Overview (L10: Model Evaluation 3)
  • 2020.11.18
  • www.youtube.com
This video goes over the topics we are going to cover in this lecture: cross-validation and model selection. Also, it gives a big-picture overview discussing...
 

10.2 Hiperparametreler (L10: Model Değerlendirme 3)



10.2 Hiperparametreler (L10: Model Değerlendirme 3)

Çapraz doğrulamaya geçmeden önce, hiperparametreleri tartışmak için biraz zaman ayıralım. Konsepte zaten aşina olabilirsiniz, ancak değilse, bu yararlı bir özet olarak hizmet edecektir. Hiperparametreler, bir modelin veya algoritmanın ayarlama parametreleri veya ayarları olarak düşünülebilir. Modelinizin performansını optimize etmek için manuel olarak ayarladığınız seçeneklerdir. Bunu göstermek için, parametrik olmayan bir model olan K-en yakın komşu sınıflandırıcısını ele alalım.

Parametrik olmayan modeller, parametrik modellerden farklı olarak önceden tanımlanmış bir yapıya sahip değildir. Bunun yerine, modelin yapısını tanımlamak için eğitim setine güvenirler. Örneğin, K-en yakın komşularda, modelin parametreleri aslında eğitim örneklerinin kendisidir. Bu nedenle, örnek ekleme veya çıkarma gibi eğitim setini değiştirmek, modelin yapısını önemli ölçüde etkileyebilir. Parametrik olmayan bir modelin başka bir örneği, ağaçtaki bölme sayısının önceden tanımlanmış bir yapı yerine eğitim örneklerine bağlı olduğu karar ağacıdır.

Şimdi, özellikle K-en yakın komşu algoritmasının hiperparametrelerine odaklanalım. Bu hiperparametreler, komşu sayısı (K) ve kullanılan mesafe metriği (örneğin, Manhattan veya Öklid mesafesi) gibi seçenekleri içerir. Bu seçeneklerin modeli çalıştırmadan önce ayarlanması gerekir ve verilerden öğrenilmez. Bu kursta, hiperparametre ayarına yardımcı olmak için ızgara arama veya rastgele arama gibi teknikleri keşfedeceğiz. Bununla birlikte, hiperparametreler için farklı değerler denemenin, bunları verilere uydurma süreci değil, en iyi ayarları bulmak için yinelemeli bir deney olduğunu not etmek önemlidir.

Daha fazla örnek sağlamak için, scikit-learn'deki hiperparametrelerin tanımlarına bakalım. Bir karar ağacı sınıflandırıcısını başlatırken hiperparametreler, diğerlerinin yanı sıra kirlilik ölçüsünü (örn. Gini veya entropi), ön budama için ağacın derinliğini ve yaprak başına minimum numune sayısını içerebilir. Bunların hepsi hiper parametreler olarak kabul edilir.

Özellikle, tüm seçenekler hiperparametre değildir, ancak tüm hiperparametreler seçeneklerdir. Örneğin, modeldeki rasgeleliği belirleyen rasgele durum veya rasgele tohum bir hiperparametre değildir. Daha iyi performans için rasgele çekirdeği değiştirmek haksızlık olarak değerlendirileceğinden, modeli geliştirmek için manipüle edilmemesi gereken bir şeydir.

Şimdi hiperparametreleri model parametreleriyle karşılaştıralım. Örneğin lineer bir model olarak görülebilen ve hem klasik makine öğrenimine hem de derin öğrenmeye giriş niteliğinde olan lojistik regresyona kısaca göz atalım. Lojistik regresyonda girdiler, yanlılığı hesaba katmak için bir kesişme terimi de dahil olmak üzere özelliklerdir. Öznitelik sayısına göre belirlenen model ağırlıkları modelin yapısını oluşturmaktadır. Başlangıçta, bu ağırlıklar sıfıra veya küçük rasgele değerlere ayarlanabilir ve daha sonra kayıp fonksiyonunu en aza indirmek için yinelemeli olarak güncellenir (örneğin, doğrusal regresyonda ortalama karesel hata).

Lojistik regresyonda, net girdiye (girdilerin ağırlıklı toplamı) sıfır ile bir arasında bir aralığa sıkıştırmak için doğrusal olmayan bir işlev, tipik olarak lojistik işlev veya sigmoid işlevi uygulanır. Bu çıktı, ikili sınıflandırmada sınıf üyelik olasılığı olarak yorumlanabilir. Ağırlıklar, tahmin edilen sınıf üyeliği olasılığı ile gerçek sınıf etiketi (0 veya 1) karşılaştırılarak hesaplanan kaybı en aza indirecek şekilde ayarlanır. Lojistik regresyon ayrıca, fazla uydurmayı önlemek için ağırlıkların boyutuna dayalı olarak bir ceza süresi ekleyen L1 veya L2 düzenlemesi gibi düzenleme teknikleri kullanır. Düzenlileştirme gücü (lambda), kullanıcı tarafından ayarlanması gereken bir hiperparametredir.

Özetlemek gerekirse, lojistik regresyondaki ağırlıklar (W) gibi model parametreleri eğitim verilerinden öğrenilirken, düzenlileştirme gücü (lambda) gibi hiperparametreler kullanıcı tarafından belirlenir ve verilerden öğrenilmez. Model parametreleri, performansı optimize etmek için eğitim sürecinde güncellenen modelin dahili değişkenleridir, hiperparametreler ise modelin davranışını kontrol eden ve eğitimden önce ayarlanması gereken harici ayarlardır.

Hiperparametreler için en uygun değerleri bulma süreci, hiperparametre ayarı olarak bilinir. Bir modelin performansını büyük ölçüde etkileyebileceğinden, makine öğreniminde önemli bir adımdır. Bununla birlikte, en iyi hiperparametre değerlerini bulmak basit bir iş değildir ve genellikle farklı kombinasyonların denenmesini ve değerlendirilmesini gerektirir.

Hiperparametre ayarlamaya yönelik yaygın bir yaklaşım, her hiperparametre için önceden tanımlanmış bir değer kümesinin belirtildiği ve tüm olası kombinasyonların çapraz doğrulama kullanılarak değerlendirildiği ızgara aramadır. Çapraz doğrulama, verileri birden çok alt kümeye (kıvrımlara) bölerek, modeli bazı katlarda eğiterek ve kalan kat üzerinde değerlendirerek bir modelin performansını değerlendirmek için kullanılan bir tekniktir. Bu, modelin görünmeyen veriler üzerindeki performansını tahmin etmeye yardımcı olur ve fazla uydurma riskini azaltır.

Başka bir yaklaşım, rastgele hiperparametre değerleri kombinasyonlarının belirtilen dağılımlardan örneklendiği rastgele aramadır. Bu, tüm olası kombinasyonları kapsamlı bir şekilde değerlendirmeden daha geniş bir değer aralığını keşfetmeye izin verdiği için, hiperparametreler için arama alanı geniş olduğunda yararlı olabilir.

Izgara arama ve rasgele aramaya ek olarak, arama sürecini yönlendirmek için olasılıksal modelleri kullanan Bayes optimizasyonu ve en iyi diziyi geliştirmek için doğal seçilim sürecini taklit eden genetik algoritmalar gibi hiperparametre ayarlama için daha gelişmiş teknikler vardır. hiperparametreler.

Hiperparametre ayarının, özellikle karmaşık modeller veya büyük veri kümeleri için hesaplama açısından pahalı olabileceğini belirtmekte fayda var. Bu nedenle, mevcut verilerin en verimli şekilde kullanılmasını sağlamak için genellikle çapraz doğrulama gibi tekniklerle birlikte yapılır.

Hiperparametreler, bir modelin eğitimden önce ayarlanması gereken ayarları veya seçenekleridir, model parametreleri ise eğitim sırasında verilerden öğrenilen dahili değişkenlerdir. Hiperparametre ayarlama, bu ayarlar için en iyi değerleri bulma işlemidir ve model performansını optimize etmek için çok önemlidir. Izgara arama, rastgele arama, Bayes optimizasyonu ve genetik algoritmalar gibi teknikler, hiperparametre ayarı için yaygın olarak kullanılır.

10.2 Hyperparameters (L10: Model Evaluation 3)
10.2 Hyperparameters (L10: Model Evaluation 3)
  • 2020.11.18
  • www.youtube.com
This video recaps the concept of hyperparameters using k-nearest neighbors and logistic regression as examples.-------This video is part of my Introduction o...
 

10.3 Model Değerlendirmesi için K-katlı CV (L10: Model Değerlendirmesi 3)



10.3 Model Değerlendirmesi için K-katlı CV (L10: Model Değerlendirmesi 3)

Bu videoda, model değerlendirmesi için çapraz doğrulama konusunu inceleyeceğiz. Çapraz doğrulama genellikle hiperparametre ayarı ve model seçimi ile birlikte kullanılır. Bununla birlikte, daha iyi anlaşılmasını kolaylaştırmak için, model seçiminde uygulanmasını tartışmadan önce, k-katlı çapraz doğrulamanın yalnızca model değerlendirmesi bağlamında nasıl çalıştığını keşfedelim.

Başlamak için, model değerlendirmesi için k-katlı çapraz doğrulama, bir veri setini bir doğrulama katına ve kalan veri segmentlerini eğitim için ayırmayı içerir. Tipik bir örnekte, beş katlı çapraz doğrulamayı ele alalım. Veri seti bir doğrulama katına (mavi renkle gösterilmiştir) ve dört eğitim katına (farklı renklerle gösterilmiştir) bölünmüştür. Model, eğitim katlarında eğitilir ve doğrulama katında değerlendirilerek bir performans metriği elde edilir. Yalnızca bir doğrulama setinin kullanıldığı uzatma yönteminden farklı olarak, k-katlı çapraz doğrulamada doğrulama katı, verinin farklı bölümleri boyunca döndürülür. Bu, tüm veri noktalarının değerlendirme için kullanılmasını sağlar. Beş katlı çapraz doğrulama durumunda, beş ayrı doğrulama katı vardır ve beş yineleme gerçekleştirilir. Her yineleme bir performans ölçüsü üretir. Genel performansı bildirirken, tipik yaklaşım, tüm yinelemelerdeki performans değerlerinin ortalamasını almaktır.

Bu tartışmada, hiperparametre ayarını dikkate almadan model değerlendirmesi için k-katlı çapraz doğrulamaya odaklandığımızı not etmek önemlidir. Bu senaryoda, çapraz doğrulama yoluyla elde edilen performans tahmini, modelin genelleştirme performansının bir tahmini olarak kabul edilebilir. Sabit hiperparametreler kullanarak tüm veri kümesi üzerinde yeni bir model eğiterek, pratik kullanım için nihai bir model elde edebiliriz. Modelin performansını daha fazla değerlendirmek için bağımsız bir test seti kullanılabilirken, çapraz doğrulama performansı halihazırda güvenilir bir genelleme performansı tahmini sağladığından, herhangi bir hiperparametre ayarı söz konusu olduğunda genellikle gereksizdir.

Şimdi, k-katlı çapraz doğrulamanın bazı temel özelliklerini keşfedelim. Doğrulama kıvrımları örtüşmez, yani farklı yinelemelerde doğrulama kıvrımındaki veri noktaları arasında örtüşme olmaz. Tüm veri noktaları test için kullanılır ve kapsamlı bir değerlendirme sağlar. Terimler birbirinin yerine kullanılabileceğinden, bazı araştırmacılar doğrulama katlamalarına test katlamaları olarak atıfta bulunabilir.

Öte yandan, eğitim kıvrımları üst üste biniyor, bu da birbirlerinden bağımsız olmadıkları anlamına geliyor. Belirli bir yinelemede, eğitim verileri, diğer yinelemelerden alınan eğitim verileriyle örtüşen örneklere sahip olabilir. Bu özellik, modelin performans değişkenliğini anlamak için önemli olan farklı eğitim kümelerine dayalı varyansı tahmin etmeyi zorlaştırır.

Dikkate değer diğer bir husus da k (kat sayısı) değerinin düşürülmesinin performans tahminini daha karamsar hale getirmesidir. Bunun nedeni, her katlamada eğitim için daha az veri noktası bulunması nedeniyle modelin uyum sağlama yeteneklerinin kısıtlanmış olmasıdır. Performans kötümserliği ile ilgili önceki açıklamamızda tartışıldığı gibi, saklanan veriler nedeniyle performans tahmini daha kötümser hale gelir.

İki özel k-katlı çapraz doğrulama durumunu keşfedelim. k 2'ye eşit olduğunda, uzatma yönteminden farklı olarak iki katlı çapraz doğrulamaya sahibiz. İki katlı çapraz doğrulamada, veri seti tam olarak ikiye bölünür ve her bir yarı, farklı iterasyonlarda eğitim için kullanılır. Buna karşılık, uzatma yöntemi keyfi bölme oranlarına izin verir ve yinelemeler arasında döndürmeyi içermez. Bununla birlikte, k-katlı çapraz doğrulamanın her turu, veri kümesinin tam olarak ikiye bölündüğü, uzatma yönteminin özel bir durumu olarak kabul edilebilir.

Başka bir özel durum, k'nin n'ye eşit olması ve bir tanesini dışarıda bırakan çapraz doğrulama (LOOCV) ile sonuçlanmasıdır. LOOCV'de, her yineleme, doğrulama seti olarak bir veri noktasının atlanmasını içerirken, kalan n-1 veri noktası eğitim için kullanılır. Bu yaklaşım, doğrulama setinin yalnızca bir veri noktasından oluştuğu LOOCV olarak da bilinir.

Hawkins ve diğerleri tarafından yürütülen bir çalışma. (2003), birini dışarıda bırak çapraz doğrulama (LOOCV) dahil olmak üzere farklı model değerlendirme yöntemlerinin performansını inceledi ve LOOCV'nin diğer çapraz doğrulama yöntemlerine kıyasla yüksek varyansa sahip olma eğiliminde olduğunu buldu. Bu yüksek varyans, LOOCV'deki her doğrulama katının yalnızca bir veri noktasından oluşması ve bunun da değerlendirme için sınırlı bir örneklem boyutuyla sonuçlanması gerçeğine bağlanabilir. Sonuç olarak, LOOCV'den elde edilen performans tahminleri, her yinelemede doğrulama için seçilen belirli veri noktalarına karşı oldukça duyarlı olabilir.

Yüksek varyansına rağmen, LOOCV'nin bazı avantajları vardır. Her yineleme, n'nin toplam veri noktası sayısı olduğu n-1 veri noktaları üzerinde eğitim içerdiğinden, LOOCV, modelin performansının tarafsız bir tahminini sağlama eğilimindedir. Ek olarak LOOCV, eğitim için mevcut tüm verileri kullanır; bu, veri kümesi küçük olduğunda veya daha kesin bir performans tahmini istendiğinde faydalı olabilir.

Ancak hesaplama karmaşıklığı nedeniyle, LOOCV büyük veri kümeleri için uygun olmayabilir. Eğitim sürecinin n kez tekrarlanması gerekir, bu da önemli bir hesaplama yüküne neden olur. Bu gibi durumlarda, orta düzeyde bir k değerine sahip k-katlı çapraz doğrulama genellikle tercih edilir.

Model değerlendirmesi için k-katlı çapraz doğrulamayı keşfettiğimize göre, model seçiminde uygulamasını kısaca tartışalım. Model seçimi bağlamında amaç, tipik olarak farklı hiperparametre ayarlarına sahip bir dizi aday modelden en iyi modeli belirlemektir. Çapraz doğrulama, her modelin performansını tahmin etmek ve seçim sürecini kolaylaştırmak için kullanılabilir.

Tipik yaklaşım, her model için k kat çapraz doğrulama gerçekleştirmek, tüm yinelemelerdeki ortalama performansı hesaplamak ve sonuçları karşılaştırmaktır. En yüksek ortalama performansa sahip model en iyi seçim olarak kabul edilir. Bu yaklaşım, veri değişkenliğinin etkisini azaltmaya yardımcı olur ve modellerin daha sağlam bir şekilde değerlendirilmesini sağlar.

Özetlemek gerekirse, çapraz doğrulama, model değerlendirmesi ve seçimi için değerli bir tekniktir. Doğrulama katını verilerin farklı bölümleri arasında sistematik olarak döndürerek, kapsamlı değerlendirmeye izin verir ve modelin performansına ilişkin tahminler sağlar. İster yalnızca model değerlendirmesi için, ister model seçimi ile birlikte kullanılsın, çapraz doğrulama, araştırmacıların ve uygulayıcıların modellerinin genelleme yetenekleri hakkında bilinçli kararlar almalarına yardımcı olur.

10.3 K-fold CV for Model Evaluation (L10: Model Evaluation 3)
10.3 K-fold CV for Model Evaluation (L10: Model Evaluation 3)
  • 2020.11.19
  • www.youtube.com
This video introduces the concept of k-fold cross-validation and explains how it can be used for evaluating models. Also, it discusses why 10-fold cross-vali...
 

10.4 Model Değerlendirmesi için K-katlı CV -- Kod Örnekleri (L10: Model Değerlendirmesi 3)



10.4 Model Değerlendirmesi için K-katlı CV -- Kod Örnekleri (L10: Model Değerlendirmesi 3)

Önceki videoda, makine öğrenimi modellerini değerlendirme yöntemi olarak k-katlı çapraz doğrulamayı tartışmıştık. Bu videoda, scikit-learn kitaplığını kullanarak Python'da k-katlı çapraz doğrulamanın nasıl uygulanacağını keşfedeceğiz. Kod defterini GitHub'a yükledim ve bağlantıyı burada bulabilirsiniz.

Gerekli kütüphaneleri yükleyip sürümlerini kontrol ederek başlayalım. Yaygın olarak kullanılan kütüphaneler olan NumPy ve matplotlib'i import edeceğiz. Daha sonra, scikit-learn'deki model seçme alt modülünden k-katlama sınıfını kullanarak k-katlamalı çapraz doğrulamanın kullanımını göstereceğiz.

Tekrar üretilebilirliği sağlamak için, rastgele bir sayı üreteci nesnesi kullanarak rastgele bir tohum ayarladık. Ardından, Class Zero'dan beş etiket ve Class One'dan beş etiket içeren basit bir veri kümesi oluşturuyoruz. Ek olarak, 10 girdi ve dört özellik içeren rastgele bir veri kümesi oluşturuyoruz. Bunun örnekleme amaçlı rastgele bir veri kümesi olduğunu ve iris veri kümesi gibi tercih ettiğiniz herhangi bir veri kümesini kullanabileceğinizi belirtmekte fayda var.

Ardından, cv (çapraz doğrulamanın kısaltması) olarak adlandırdığımız bir k-katlama nesnesini başlatıyoruz. Bölme sayısını, n_splits, beşe ayarladık, bu da beş katlı çapraz doğrulama yapacağımızı belirtir. Bu k katlı nesnenin davranışını split yöntemini kullanarak inceleyelim. Bu yöntemi uyguladığımızda, her biri iki dizi içeren bir demetten oluşan beş sonuç elde ederiz. İlk dizi, eğitim katını temsil eder ve ikinci dizi, doğrulama katını temsil eder.

Bu dizilerdeki sayılar, veri setindeki örneklerin indekslerine karşılık gelir. Örneğin, ilk katın eğitim setine karşılık gelen gerçek etiketleri elde etmek istiyorsak, bu indeksleri etiketleri seçmek için bir indeks dizisi olarak kullanabiliriz. Benzer şekilde, karşılık gelen özellikleri seçebiliriz. Bu durumda gözlemlediğimiz gibi, eğitim ve doğrulama katlarındaki etiketlerin dengesiz olabileceğini not etmek önemlidir.

Bu sorunu çözmek için, k kat çapraz doğrulama gerçekleştirmeden önce veri kümesini karıştırmanız önerilir. Bunu, veri setini başlatma sırasında doğrudan k-katlama nesnesi içinde karıştırarak başarabiliriz. Rastgele bir durum ayarlayarak ve karıştırarak, eğitim ve doğrulama katlamalarında daha iyi bir etiket karışımı elde ederiz.

Ayrıca, sınıf etiketlerinin oranının her bir kat boyunca tutarlı kalmasını sağlayarak bölmelerin katmanlaştırılması genellikle tavsiye edilir. Bunu normal k-katlama sınıfı yerine tabakalı k-katlama sınıfını kullanarak başarabiliriz. Tabakalı k-katlama kullandığımızda, her katlamadaki etiketlerin oranı, orijinal veri kümesininkiyle eşleşir.

K-katlı ve katmanlı k-katlı nesnelerin genel davranışını tartıştıktan sonra, bunların pratikte nasıl uygulanacağını görelim. Örnek olarak bir karar ağacı sınıflandırıcısı ve iris veri kümesi kullanacağız. Öncelikle iris veri setini, tabakalı bölmeyi sağlayan train_test_split yöntemini kullanarak %85 eğitim verisine ve %15 test verisine ayırdık.

Daha sonra, Ron Kohavi'nin çapraz doğrulama için pratik kılavuz hakkındaki makalesinde önerildiği gibi k=10 ile katmanlı bir k-katlama nesnesini başlatıyoruz. Daha sonra, split yöntemini kullanarak eğitim ve doğrulama endekslerini yineleyerek k-katlı çapraz doğrulama gerçekleştirmek için manuel bir yaklaşım kullanırız. Her yinelemede, eğitim katını kullanarak yeni bir karar ağacı sınıflandırıcısı uydurur ve doğrulama katının etiketlerini tahmin ederiz. Her yineleme için doğruluğu hesaplıyoruz ve sonuçları bir yer tutucu değişkende saklıyoruz.

Tüm kıvrımları yineledikten sonra, doğrulukların toplamını yineleme sayısına bölerek ortalama k-katlı çapraz doğrulama doğruluğunu hesaplıyoruz. Son olarak, modeli görünmeyen veriler üzerinde değerlendirmek için, tüm eğitim verilerini kullanarak yeni bir karar ağacı sınıflandırıcısı uydurur ve test setindeki doğruluğu hesaplarız.

Bu durumda, %95,3'lük bir k-kat çapraz doğrulama doğruluğu ve %95'lik bir test seti doğruluğu elde ettik. Bu sonuçlar, modelimizin hem çapraz doğrulama kıvrımlarında hem de görünmeyen test verilerinde iyi performans gösterdiğini göstermektedir.

Bununla birlikte, kıvrımları manuel olarak yinelemek ve modelleri uydurmak biraz külfetli olabilir. Neyse ki scikit-learn, cross_val_score işlevini kullanarak k-katlı çapraz doğrulama gerçekleştirmek için daha uygun bir yol sağlar. Bu işlev, modeli, veri kümesini ve kat sayısını girdi olarak alır ve otomatik olarak k kat çapraz doğrulama gerçekleştirir ve her kat için puanları döndürür.

Bunun pratikte nasıl yapıldığını görelim. Gerekli kütüphaneleri içe aktararak ve iris veri setini yükleyerek başlıyoruz. Daha sonra, karar ağacı sınıflandırıcısının bir örneğini yaratıyoruz ve k=10 ile katmanlı bir k-katlamalı nesne başlatıyoruz.

Daha sonra, sınıflandırıcıyı, veri kümesini ve k-katlama nesnesini geçerek cross_val_score işlevini kullanırız. Bu işlev otomatik olarak k-katlı çapraz doğrulamayı gerçekleştirir, modele uyar ve her katlama için puanları hesaplar. Cross_val_score işlevi varsayılan olarak doğruluk ölçüsünü kullanır, ancak isterseniz başka ölçüler de belirleyebilirsiniz.

Son olarak, her katlama için çapraz doğrulama puanlarını yazdırır ve ortalama puanı hesaplarız. Bu durumda, manuel olarak elde ettiğimiz doğrulukla eşleşen %95,3'lük bir ortalama çapraz doğrulama doğruluğu elde ettik.

cross_val_score kullanmak, tüm süreci otomatik olarak yönettiği için k-katlı çapraz doğrulama gerçekleştirmenin daha özlü ve etkili bir yoludur. Ayrıca, kodu önemli ölçüde değiştirmeden kat sayısını kolayca değiştirmemize veya farklı bir modele geçmemize olanak tanır.

10.4 K-fold CV for Model Evaluation -- Code Examples (L10: Model Evaluation 3)
10.4 K-fold CV for Model Evaluation -- Code Examples (L10: Model Evaluation 3)
  • 2020.11.19
  • www.youtube.com
This video explains how we can evaluate models via k-fold cross-validation in Python using scikit-learn. A later video will show how we can use k-fold cross-...
 

10.5 Model Seçimi için K-katlı CV (L10: Model Değerlendirme 3)


10.5 Model Seçimi için K-katlı CV (L10: Model Değerlendirme 3)

Önceki iki videoda, model değerlendirmesi için k-katlı çapraz doğrulamayı tartıştık ve bazı kod örneklerini inceledik. Şimdi, model seçimi için k-katlı çapraz doğrulamaya odaklanacağız. Model seçimi, hiperparametreleri ayarlamamıza ve en iyi performans gösteren hiperparametre ayarlarını seçmemize izin verdiği için k-katlı çapraz doğrulama için genellikle yaygın kullanım durumudur.

Genel süreç beş adımda özetlenebilir. Ancak, slayttaki sınırlı alan nedeniyle, daha fazla ayrıntı sağlamak için sonraki slaytlarda her adımı yakınlaştıracağım. Beş adım, daha önce tartıştığımız model seçimi için üç kat uzatma yöntemine benzer.

Adım 1: Verileri eğitim ve test setlerine ayırın. Bu adım, veri setini biri eğitim, diğeri test için olmak üzere iki kısma ayırdığımız önceki adımla aynıdır. Şimdilik eğitim setine odaklanacağız.

Adım 2: k-katlı çapraz doğrulama kullanarak öğrenme algoritmasını farklı hiperparametre ayarlarıyla uygulayın. Bir karar ağacı algoritmasının maksimum derinliği gibi her hiperparametre ayarı, k-katlı çapraz doğrulama kullanılarak değerlendirilir. Örneğin, Ron Kohavi tarafından önerildiği gibi, k=10 ile k-katlı çapraz doğrulamayı kullanabiliriz. Bu adım bize her bir hiperparametre ayarı için farklı performans tahminleri sağlar.

Adım 3: En iyi performans gösteren modeli seçin. K-katlı çapraz doğrulamadan elde edilen performans tahminlerine dayanarak, en iyi performansı gösteren hiperparametre ayarını belirleyebiliriz. Örneğin, maksimum beş derinliğin test edilen değerler arasında en iyi performansı gösterdiğini görebiliriz. Bu hiperparametre ayarını en iyi olarak seçiyoruz.

Adım 4: En iyi hiperparametre değerlerine sahip modeli eğitim verilerine uydurun. En iyi hiperparametre ayarını belirledikten sonra, tüm eğitim veri setini ve seçilen hiperparametreleri kullanarak modeli yeniden eğitiyoruz. Bu, en iyi hiperparametre değerlerine sahip tek bir modele sahip olmamızı sağlar.

Adım 5: Modeli bağımsız bir test setinde değerlendirin. Modelin genelleme performansını tahmin etmek için, eğitim veya hiperparametre seçim sürecinde kullanılmayan ayrı bir test setinde değerlendiririz. Bu, modelin performansının tarafsız bir değerlendirmesini sağlar.

İsteğe bağlı olarak, modeli tüm veri kümesindeki en iyi hiperparametre değerlerine sığdırdığımız ek bir adım gerçekleştirebiliriz. Bu adım, modelin daha fazla veri üzerinde eğitildiğinde daha da iyi performans gösterebileceği varsayımına dayanmaktadır.

Seçim yanlılığını önlemek için bağımsız bir test setine sahip olmak önemlidir. Bazen, bir hiperparametre ayarı şans eseri k-katlı çapraz doğrulamada iyi performans göstererek aşırı iyimser bir tahmine yol açabilir. Bağımsız bir test seti kullanarak, modelin performansının daha güvenilir bir değerlendirmesini elde edebiliriz.

Bu prosedür, model seçimi için k-katlı çapraz doğrulamayı özetler. Şimdi, model seçimi veya hiperparametre ayarlama adımı sırasında hiperparametreleri seçmek için bazı teknikleri keşfedelim.

Yaygın bir yöntem, yaygın olarak kullanılmaya devam eden ızgara aramadır. Izgara araması, dikkate alınacak hiperparametre değerlerinin bir listesini tanımladığınız kapsamlı bir arama yöntemidir. Örneğin, k-en yakın komşular durumunda, 3, 5, 6, 7, 8 ve 9 gibi bir değerler listesi belirleyerek k'nin değerini ayarlayabilirsiniz. Izgara arama, her biri için modelin performansını değerlendirir. k-katlı çapraz doğrulama kullanan hiperparametre kombinasyonu.

Izgara araması paralel olarak gerçekleştirilebilir ve birden fazla hiperparametre kombinasyonunun aynı anda değerlendirilmesine olanak tanır. Bununla birlikte, ilgili tüm hiperparametre değerlerinin önceden tanımlanmış ızgaraya dahil edilmemesi halinde kapsama alanı zayıf olabilir. Bu, özellikle sürekli hiperparametreler için veya belirli değerler atlandığında sorunludur.

Kapsam sorununu ele almak için, rastgele arama, hiperparametre değerlerini dağılımlardan örnekleyen alternatif bir yaklaşımdır. Sabit bir ızgara belirlemek yerine, hiperparametre değerlerini örneklemek için tek tip, normal, üstel, beta veya binom gibi dağılımlar tanımlayabilirsiniz. Rastgele arama, hiperparametre alanını keşfetmede daha fazla esneklik sağlar ve potansiyel olarak daha geniş bir değer aralığını kapsayabilir. Dağılımlardan örnekleme yaparak, rasgele arama, hiperparametre uzayının daha verimli bir şekilde keşfedilmesini sağlar.

Izgara aramayla karşılaştırıldığında, rasgele arama, tüm olası kombinasyonları değerlendirmediği için hesaplama açısından genellikle daha verimlidir. Bunun yerine, hiperparametre değerlerinin bir alt kümesini rasgele örnekler ve bunları k-katlı çapraz doğrulama kullanarak değerlendirir. İterasyon veya numune sayısı önceden belirlenebilir.

Rastgele aramanın avantajı, özellikle bazı hiperparametreler diğerlerinden daha az önemli olduğunda, geniş bir hiperparametre uzayını verimli bir şekilde arayabilmesidir. Belirli bir ızgara tanımlamaya gerek kalmadan sürekli ve ayrık hiperparametreleri de işleyebilir.

Hem ızgara aramanın hem de rastgele aramanın artıları ve eksileri vardır. Izgara arama, tanımlanmış ızgara içindeki tüm kombinasyonları kapsamayı garanti eder, ancak hesaplama açısından pahalı olabilir ve büyük hiperparametre uzayları için uygun olmayabilir. Öte yandan, rasgele arama daha verimlidir ancak kapsamlı kapsamı garanti etmez.

Uygulamada, ızgara arama ve rasgele arama arasındaki seçim, hiperparametre alanının boyutuna, mevcut hesaplama kaynaklarına ve eldeki belirli soruna bağlıdır.

Hiperparametre ayarı için başka bir teknik Bayes optimizasyonudur. Bayes optimizasyonu, hiperparametreler ile amaç fonksiyonu (örneğin, model performansı) arasındaki ilişkiyi modellemek için olasılıksal bir model kullanır. Amaç işlevine yaklaşmak için Gauss Süreçleri gibi bir vekil model kullanır ve değerlendirilecek bir sonraki hiperparametre değerlerini belirlemek için bir edinim işlevi kullanır.

Bayes optimizasyonu, vekil modele dayalı olarak hiperparametre değerlerini yinelemeli olarak örnekler ve değerlendirilen performansa dayalı olarak modeli günceller. Aramayı hiperparametre uzayının gelecek vaat eden bölgelerine odaklayarak daha verimli keşfe yol açar.

Bayes optimizasyonunun avantajı, hem sürekli hem de ayrık hiperparametrelerin yanı sıra dışbükey olmayan ve doğrusal olmayan amaç fonksiyonlarını işleme yeteneğidir. Gözlemlenen performansa uyum sağlar ve değerlendirmek için bir sonraki hiperparametre değerlerini akıllıca seçer, ızgara arama veya rastgele aramaya kıyasla daha az değerlendirmeyle potansiyel olarak en uygun çözüme yakınsar.

Bununla birlikte, Bayes optimizasyonu, özellikle büyük veri kümeleri veya karmaşık modeller için hesaplama açısından daha pahalı olabilir. Yedek modeli güncellemek ve değerlendirilecek bir sonraki hiperparametre değerlerini belirlemek için amaç fonksiyonunun birden çok kez değerlendirilmesini gerektirir.

Genel olarak, Bayes optimizasyonu, özellikle hiperparametre alanı karmaşık olduğunda ve amaç fonksiyonunun değerlendirilmesi pahalı olduğunda, hiperparametre ayarı için güçlü bir tekniktir.

Özetle, k-katlı çapraz doğrulama, hem model değerlendirmesi hem de model seçimi için değerli bir araçtır. Farklı modellerin performansını tahmin etmemizi ve en iyi hiperparametre ayarlarını seçmemizi sağlar. Izgara arama, rastgele arama ve Bayes optimizasyonu gibi teknikler, hiperparametreleri ayarlamak ve model performansını iyileştirmek için kullanılabilir. Yöntem seçimi, hiperparametre uzayının boyutu, hesaplama kaynakları ve eldeki spesifik problem gibi faktörlere bağlıdır.

10.5 K-fold CV for Model Selection (L10: Model Evaluation 3)
10.5 K-fold CV for Model Selection (L10: Model Evaluation 3)
  • 2020.11.20
  • www.youtube.com
After talking about k-fold cross-validation for model *evaluation* in the last two videos, we are now going to talk about k-fold cross-validation for model *...
 

10.6 Model Değerlendirmesi için K-katlı CV -- Kod Örnekleri (L10: Model Değerlendirmesi 3)



10.6 Model Değerlendirmesi için K-katlı CV -- Kod Örnekleri (L10: Model Değerlendirmesi 3)

Evet, geçen sefer model değerlendirmesi için k-katlı çapraz doğrulama hakkında konuştuğumuz gibi. Şimdi k-katlı çapraz doğrulama için bazı kod örneklerine daha yakından bakalım, ancak bu sefer model seçimi için. Size GitHub'da bulabileceğiniz bazı kod örnekleri vereceğim. Piazza ve Canvas'taki bağlantıyı da ekleyeceğim, böylece kod defterini indirip daha sonra deneyebilirsin.

Pekala, kod defterine geçelim. Her zamanki gibi kullandığımız paketlerin sürüm numaralarını kontrol etmek için filigranla başlıyoruz. Bu not defterinde, hiperparametre ayarı ve model seçimi için gerçekten yararlı olan grid aramasına odaklanacağız. Bu gösterim için, iris veri setinde karar ağacı sınıflandırıcısını kullanacağız. İris veri seti en heyecan verici olmasa da, işleri basit tutmamıza izin veriyor. Ayrıca, daha karmaşık veri kümeleriyle çalışacağınız sınıf projelerinize başlamadan önce iyi bir uygulama olacaktır.

Veri setimizi eğitim ve test setlerine ayırarak başlıyoruz. Verilerin %85'ini eğitim için ve %15'ini test için olağan uygulamayı takiben kullanıyoruz. Izgara aramasına geçerek iki hiperparametre seçeneği tanımlıyoruz: maksimum derinlik ve kriter. Maks derinlik, karar ağacının maksimum derinliğini temsil eder ve bunu 1, 2, 3, 4, 5 veya Yok (maksimum derinlikte kısıtlama yok) olarak ayarladık. Ölçüt, bir bölünmenin kalitesini ölçme işlevini temsil eder ve hem "gini" hem de "entropi"yi değerlendiririz. Uygulamada, gini ve entropi arasındaki seçim çok az fark yaratır, ancak biz bunu gösteri amacıyla dahil ettik.

Ardından, hiperparametreleri ve ilgili değerlerini belirterek bir parametre ızgarası oluşturuyoruz. Bir liste kullanmak yerine, farklı senaryolar belirtmek için sözlükleri de kullanabiliriz. Örneğin, başka bir hiperparametre için tüm değerleri keşfederken bir hiperparametre için belirli bir değeri sabit kodlayabiliriz. Bu yaklaşım, çelişen parametre seçimleriyle uğraşırken yardımcı olabilir. Ancak bu durumda herhangi bir çakışma olmadığı için bir liste yeterli olacaktır.

Çapraz doğrulama katlarının (CV) sayısını 10'a ayarladık, bu da 10'lu çapraz doğrulama yapmak istediğimizi gösteriyor. Tabakalı k-katlı çapraz doğrulama, sınıflandırıcılar için kullanılır ve etiketlerin oranlarının her katlamada sabit tutulmasını sağlar. En iyi hiper parametre ayarlarını seçmek için kullanılan puanlama metriği, sınıflandırıcılar için doğruluk ve regresörler için R-kare puanıdır. Ayrıca çalışacak paralel işlerin sayısını -1 olarak ayarlayarak birden çok işlemin paralel olarak yapılmasına olanak sağladık.

Gerekli tüm detayları belirledikten sonra grid arama nesnesini verilerimize sığdırıyoruz. Çapraz doğrulama kullanarak her bir hiperparametre kombinasyonunun performansını değerlendirerek, parametre ızgarası üzerinde kapsamlı bir arama gerçekleştirir. Izgara araması tamamlandığında, sırasıyla best_score_ ve best_params_ özniteliklerini kullanarak en iyi skora ve karşılık gelen parametrelere erişebiliriz. Bu durumda, en iyi model maksimum 3 derinliğe ve "gini" kriterine sahiptir ve doğrulama kıvrımlarında ortalama %96'lık bir doğruluk elde eder.

İlgileniyorsak, tüm bilgileri içeren bir sözlükte saklanan sonuçları manuel olarak inceleyebiliriz. Burada, her bir hiperparametre ayarı için doğrulama kıvrımları üzerinden ortalama performansı temsil eden ortalama test puanına odaklanıyoruz. Daha iyi okunabilirlik için puanları parametre ayarlarıyla birlikte yazdırıyoruz.

İsteğe bağlı olarak, ML kapsam kitaplığından bir işlev kullanarak sonuçları bir ısı haritasında özetleyebiliriz. Isı haritası, farklı hiperparametre ayarları için performansın görsel bir temsilini sağlar. Bu durumda, "gini" ve "entropi" arasındaki seçimin, benzer puanların gösterdiği gibi, performans üzerinde neredeyse hiçbir etkisi yoktur. En iyi performans, maksimum 3 derinlik ve "gini" kriteri ile elde edilir.

En iyi hiperparametre ayarlarını elde ettikten sonra, tüm eğitim veri setinde son modeli eğitmek için bunları kullanabiliriz. Bu, model eğitimi için mevcut tüm verileri kullanmamızı sağlar. Yeni bir karar ağacı sınıflandırıcı nesnesi oluşturuyoruz, hiperparametreleri ızgara araması sırasında bulunan en iyi değerlere ayarlıyoruz ve modeli eğitim verilerine uyduruyoruz.

Model eğitildikten sonra, test veri kümesi üzerinde tahminler yapabilir ve performansını değerlendirebiliriz. Bu örnekte, doğru sınıflandırılmış örneklerin oranını ölçen doğruluk puanını hesaplıyoruz. Doğruluk puanını yazdırıyoruz ve bu durumda test setinde %93 doğruluk elde ediyoruz.

Genel olarak, ızgara araması, farklı hiperparametre kombinasyonlarını sistematik olarak keşfetmemize ve modelimiz için en iyi yapılandırmayı seçmemize olanak tanır. Hiperparametre ayarlama sürecini otomatikleştirir ve geliştirilmiş performans için en uygun ayarları bulmaya yardımcı olur.

Model seçimi ve hiperparametre ayarı için ızgara aramayı kullanmanın temel fikri budur. Tabii ki, bu sadece bir yaklaşım ve rastgele arama, Bayes optimizasyonu ve daha fazlası gibi başka teknikler de var. Yöntem seçimi, belirli soruna ve mevcut kaynaklara bağlıdır.

10.6 K-fold CV for Model Evaluation -- Code Examples (L10: Model Evaluation 3)
10.6 K-fold CV for Model Evaluation -- Code Examples (L10: Model Evaluation 3)
  • 2020.11.20
  • www.youtube.com
In this video, we look at code examples for using k-fold cross-validation for model selection. In particular, we are looking at GridSearchCV and RandomizedSe...
 

10.7 K-katlamalı CV 1-Standart Hata Yöntemi (L10: Model Değerlendirme 3)


10.7 K-katlamalı CV 1-Standart Hata Yöntemi (L10: Model Değerlendirme 3)

Önceki tartışmada, ızgara aramayı kullanarak k-katlı çapraz doğrulama ve model seçimi kavramlarını ele aldık. Ancak dikkate alınması gereken başka bir önemli konu daha vardır: tek standart hata yöntemi. Bu yöntem, birden çok hiperparametre ayarının eşit derecede iyi performans gösterdiği durumlarla karşılaştığımızda ve en uygun olanı seçmemiz gerektiğinde geçerlidir.

Benzer veya aynı performansa sahip birden fazla hiperparametre ayarımız olduğunda, hangisini seçeceğimize karar vermek çok önemli hale gelir. Varsayılan olarak, scikit-learn, bir eşitlik varsa listeden ilk ayarı seçer. Bununla birlikte, tek standart hata yöntemi, cimrilik ilkesine veya Occam'ın usturasına dayanan alternatif bir yaklaşım sunar. Occam'ın usturasına göre, rakip hipotezler eşit derecede iyi performans gösterdiğinde, en az varsayıma sahip olan tercih edilmelidir.

Tek standart hata yöntemini uygulamak için, sayısal olarak en uygun tahmini ve standart hatasını dikkate alıyoruz. K-katlı çapraz doğrulama yoluyla model seçimini yaptıktan sonra, farklı hiperparametre ayarları için performans tahminleri elde ediyoruz. Bu ayarlar arasından, performansı önceki adımda elde edilen en iyi performans gösteren modelin bir standart hatası dahilinde olan modeli seçiyoruz.

Bu yöntemi açıklamak için, scikit-learn ile oluşturulan, kareler ve üçgenlerden oluşan bir ikili sınıflandırma veri kümesini ele alalım. Basitlik için bir RBF çekirdek Destek Vektör Makinesi'ne (SVM) odaklanacağız. SVM, her eğitim örneğinin etkisini kontrol eden gama adı verilen bir hiperparametreye sahiptir. Çeşitli gama değerlerinin %60 ile %90 arasında değişen doğruluklarla sonuçlandığını ve bazı ayarların benzer performans gösterdiğini bulduk.

SVM durumunda, karar sınırının karmaşıklığı gama değerine bağlıdır. Daha yüksek bir gama daha karmaşık bir karar sınırına yol açarken, daha düşük bir gama daha basit bir karar sınırına yol açar. Bunu, farklı gama değerleri için karar sınırlarını çizerek gözlemleyebiliriz. Daha basit modeller doğrusala daha yakın karar sınırlarına sahipken, daha karmaşık modeller daha girift şekiller sergiliyor.

Ancak, birden çok hiperparametre ayarı benzer doğruluklar verdiğinde, en iyi performans gösteren modelin bir standart hatası içindeki en basit modeli seçmek isteriz. Örneğin, en iyi performans gösteren modelin gama değeri 0,1 ise, gama değerleri 0,1 olan bir standart hata dahilinde olan modelleri dikkate alır ve en düşük karmaşıklığa sahip olanı seçeriz.

Tek standart hata yönteminin her zaman karşılık gelen bir makalesi veya yayını olmayabilir. Basitlik ilkesine dayalı pratik bir yaklaşımdır ve uygulayıcılar tarafından geniş çapta benimsenmiştir. Bu yöntemle ilgili yayınlanmış herhangi bir çalışma veya makale varsa, bunlar, etkinliğini ve sonuçlarını daha fazla araştırmak için değerli eklemeler olacaktır.

Bir sonraki videoda, tek standart hata yönteminin pratikte nasıl uygulanacağını gösteren bir kod örneğini inceleyeceğiz.

10.7 K-fold CV 1-Standard Error Method (L10: Model Evaluation 3)
10.7 K-fold CV 1-Standard Error Method (L10: Model Evaluation 3)
  • 2020.11.20
  • www.youtube.com
This video suggests the 1-standard error method as a tie breaker for selecting one model from a set of similarly well performing models.-------This video is ...
 

10.8 K-katlama CV 1-Standart Hata Yöntemi -- Kod Örneği (L10: Model Değerlendirme 3)


10.8 K-katlama CV 1-Standart Hata Yöntemi -- Kod Örneği (L10: Model Değerlendirme 3)

Bu videoda bir önceki videoda bahsettiğim tek standart hata yöntemini nasıl uyguladığımı detaylı bir şekilde anlatacağım. Kod örnekleri ile birlikte takip etmek için, kolay erişim için Canvas'ta da yayınlayacağım bu bağlantı altında bulabilirsiniz.

Gelin defteri birlikte inceleyelim. İlk olarak, yaygın olarak kullanılan geleneksel ithalatımız var. Ardından, scikit-learn kitaplığından make_circles işlevini kullanarak kendi oyuncak veri kümemi oluşturuyorum. Bu işlev, veri kümesindeki örnek sayısını ve gürültü miktarını belirlemenizi sağlar. Oluşturulan veri seti daha sonra eğitim ve test setlerine bölünür. Bu yaklaşım, farklı öğrenme eğrilerinin ve model davranışlarının gürültü ve eğitim örneklerinin sayısı gibi değişen parametrelerle nasıl değiştiğini gözlemlemek için gelişigüzel büyük veri kümeleri üzerinde simülasyon çalışmaları yürütmek için mükemmeldir. Deneyler için faydalı bir test yatağı görevi görür.

Daha sonra, örnek olarak destek vektör makinesini (SVM) kullanıyorum. Bu tanıtım için DVM'lerin nasıl çalıştığını tam olarak anlamanız gerekmez; Ben sadece net bir örnek olarak seçtim. Aşağıdaki adımlar, bir hiperparametre ayarları listesi tanımladığım ve bu değerleri yinelediğim manuel bir yaklaşımı içerir. Ancak, daha karmaşık ayarlarınız varsa, önceki videoda açıklanan ParamSampler'ı kullanabilirsiniz.

Bu gösteri için tek bir hiperparametre kullanıyorum, bu nedenle bir liste ve bir for döngüsü kullanan manuel bir yaklaşım yeterlidir. Bir parametre listesi başlatıyorum ve ardından her değer üzerinde yineliyorum. Her yinelemede, SVM modelini seçilen hiperparametre ayarıyla başlatırım. Ardından, modelin doğruluğunu değerlendirmek için k-katlı çapraz doğrulama gerçekleştiriyorum. Doğruluk değerleri toplanır ve ben ortalamayı, standart sapmayı ve standart hatayı hesaplarım. Lütfen standart sapmayı örneklem büyüklüğünün kareköküne bölerek standart hatayı hesaplamak için kullandığım saf yaklaşımın en iyi yöntem olmayabileceğini unutmayın, çünkü k-katlı çapraz doğrulamadaki turlar tamamen bağımsız değildir. Ancak, farklı yöntemleri karşılaştırmak için bazı benzerlik ölçüleri veya hata çubukları elde etmek amacıyla bu yaklaşım yeterlidir.

Doğruluk değerlerini topladıktan sonra, örnekleme üstel olarak yapıldığından bunları bir log ölçeğinde çiziyorum. Ortaya çıkan çizim, farklı hiperparametre ayarları için SVM modelinin performansını görüntüler. Bu, ders slaytlarında gördüklerimizle tutarlıdır.

Bu yöntemin diğer sınıflandırıcılara uygulanabilirliğini göstermek için iris veri kümesinde karar ağacı sınıflandırması için kod da sağlıyorum. Bu durumda, karar ağacının maksimum derinlik parametresini 1'den 10'a değiştiriyorum. Benzer adımlar izleniyor: modeli bir hiperparametre ayarıyla başlatmak, modeli uydurmak, tahminlerde bulunmak, k-katlı çapraz doğrulama puanlarını toplamak, standart hata vb. Farklı maksimum derinlikler için karar sınırlarını analiz ederek, model karmaşıklığı ve performans arasındaki dengeyi gözlemleyebiliriz. Bu özel örnekte, bir standart hata yöntemi kullanılarak maksimum derinliği üç olan bir karar ağacı seçilir.

Son olarak, algoritma seçimi için çapraz doğrulama, istatistiksel testler ve değerlendirme metriklerini içeren bir sonraki derste ele alacağımız konulara kısaca değiniyorum. Bu konular, önceki derslerde tartışılan kavramlarla yakından ilişkilidir.

Umarım bu açıklamayı faydalı bulursunuz. Harika bir hafta sonu geçirin!

10.8 K-fold CV 1-Standard Error Method -- Code Example (L10: Model Evaluation 3)
10.8 K-fold CV 1-Standard Error Method -- Code Example (L10: Model Evaluation 3)
  • 2020.11.20
  • www.youtube.com
This video goes over a code example for applying the 1-standard error method, which can be used as a tie breaker for selecting one model from a set of simila...
 

11.1 Derse Genel Bakış (L11 Model Değerlendirmesi Bölüm 4)


11.1 Derse Genel Bakış (L11 Model Değerlendirmesi Bölüm 4)

Herkese merhaba ve hoş geldiniz! Önceki oturumumuzda, hiperparametre ayarı ve model seçimi konusuna değinmiştik. Odak noktamız, en iyisini seçmek için farklı modelleri çeşitli hiperparametre ayarlarıyla sıralamak için kullanılan bir teknik olan k-katlamalı çapraz doğrulamaydı. Model karşılaştırma sürecini kolaylaştıran ızgara arama ve rastgele arama gibi pratik yöntemleri araştırdık.

Bugün, model karşılaştırma yönünü daha ayrıntılı olarak inceleyeceğiz. Bir test setindeki bir modelin tahminlerini paylaşan bir araştırma makalesine rastladığınızı varsayalım. Bu tahminleri kendi modelinizle karşılaştırmak ve performanslarında istatistiksel olarak anlamlı bir fark olup olmadığını belirlemek isteyebilirsiniz. Bu uygulama çok yaygın olmasa da faydalı olabilir. Bu gibi durumlarda kullanılabilecek bir istatistiksel test, McNemar testidir. Ek olarak, farklı modelleri ve algoritmaları daha adil bir şekilde karşılaştırmamızı sağlayan algoritma karşılaştırmalarını tartışacağız.

Ancak, bugünkü dersin Şükran Günü haftası nedeniyle normalden daha kısa olacağını lütfen unutmayın. İlgilenenler için ders notlarında daha detaylı açıklamalar yer almaktadır. Ayrıca beş kere iki F testi ve çeşitli t testi prosedürleri gibi ek istatistiksel testleri de kapsar. Bu konular incelenebilir olmasa da, entelektüel merakınızı gidermeye hizmet eder.

Zamanımızı optimize etmek için, önümüzdeki hafta performans ölçümleri üzerine bir ders bizi beklediğinden, bu yöntemleri derinlemesine incelemeyeceğiz. Zaman izin verirse, özellik seçimi ve özellik çıkarma konularına da değinebiliriz. Size kolaylık olması açısından bu konulardaki ek materyalleri Canvas üzerinden paylaştım.

Şimdi, model karşılaştırmaları için istatistiksel testlerle başlayarak, model değerlendirmesiyle ilgili ana derse başlayalım. Daha sonra çoklu ikili karşılaştırmalarla ilgili zorlukları ele alacağız ve bunları ele alma yöntemlerini keşfedeceğiz. Akabinde, algoritma seçimini derinlemesine inceleyeceğiz ve iç içe çapraz doğrulama tekniği ile ilgili somut bir kod örneğini inceleyeceğiz. Bu derse genel bakış, bugünkü tartışmamız için zemin hazırlıyor.

Devam etmeden önce, model değerlendirmeyle ilgili önceki derslerde ele aldığımız konuları özetleyelim. Önyargı-varyans değiş tokuşu, eksik uydurma ve fazla uydurma ve basit uzatma yöntemi dahil olmak üzere temel bilgilerle başladık. Daha sonra güven aralıklarını araştırdık ve ampirik güven aralıkları oluşturmak için önyükleme yöntemini tanıttık. Uygulamada yaygın olarak kullanılmasa da, model kararlılığına ilişkin içgörüler sunan tekrarlanan uzatma yöntemini araştırdık. Yeniden örnekleme yöntemlerine iyi bir giriş yaptı.

Geçen hafta, araştırmamıza daha fazla derinlik katan çapraz doğrulama alanına girdik. Izgara arama ve rastgele arama kullanarak hiperparametre ayarını tartıştık ve bu teknikleri model seçimi için kullandık. Öncelikli odak noktamız, veri setini eğitim, doğrulama ve test setlerine ayırmayı içeren üç yollu uzatma yöntemiydi. Farklı modelleri sıralamak için doğrulama setini ve son performanslarını tahmin etmek için test setini kullandık. Daha küçük veri kümeleri için, k-katlı çapraz doğrulamaya ve birini dışarıda bırakan çapraz doğrulamaya döndük.

Bugünkü ders, model ve algoritma karşılaştırmalarını tanıtacak. Bu kavramlar model seçimi ile ilgili olsa da, buradaki amacımız, ilgili bir dizi görevde hangisinin daha iyi performans gösterdiğini belirlemeye çalışarak farklı algoritmaları karşılaştırmaktır. İdeal olarak, her algoritma için ayrık eğitim ve test kümeleri koleksiyonumuz olurdu. Örneğin, görüntü sınıflandırma yöntemlerini karşılaştırırken, farklı algoritmalar kullanarak farklı modelleri eğitmek için çeşitli görüntü veri kümeleri kullanırdık. Daha sonra performanslarını birden çok veri kümesinde karşılaştırırdık. Bununla birlikte, pratik kısıtlamalar genellikle bu ideal yaklaşımı takip etme yeteneğimizi sınırlar. Veri kümelerinde bağımsızlık ihlalleri ve diğer sıkıntılarla ilgili sorunlarla karşılaşıyoruz. Bu sorun, CIFAR-10 belgesinde tartışılan zorlukları anımsatmaktadır.

Ayrıca, eğittiğimiz bir modelin performansını bir araştırma makalesinde yayınlanan veya internette bulunan bir modelin performansıyla nasıl karşılaştırabiliriz? Bunu ele almak için, iki model arasındaki gerçek performans farkını istatistiksel testler kullanarak inceleyebiliriz. Böyle bir test, iki modelin tahmin performansını ikili bir sonuç üzerinde karşılaştırmak için yaygın olarak kullanılan McNemar testidir.

McNemar testi, veri kümesindeki her örneğin her iki model tarafından sınıflandırıldığı ve sonuçların bir beklenmedik durum tablosu olarak kaydedildiği anlamına gelen eşleştirilmiş verilere sahip olduğumuzda uygundur. Acil durum tablosunda dört olası sonucu temsil eden dört hücre bulunur:

              Model 2
           |  Positive | Negative |
---------------------------------
Model 1     |           |          |
---------------------------------
  Positive |           |          |
---------------------------------
  Negative |           |          |
---------------------------------
McNemar testini uygulamak için, olasılık tablosunun her bir hücresindeki örnek sayısını sayarız. Bu sayıları aşağıdaki gibi gösterelim:

  • a: Hem 1 hem de 2 modellerinin pozitif tahminde bulunduğu durumların sayısı.
  • b: Model 1'in pozitif tahminde bulunduğu ve model 2'nin negatif tahminde bulunduğu durumların sayısı.
  • c: Model 1'in negatif tahmin ettiği ve model 2'nin pozitif tahmin ettiği durumların sayısı.
  • d: Hem 1 hem de 2 modellerinin negatif tahmin ettiği durumların sayısı.

Bu sayımlarla, modellerin performanslarında anlamlı bir fark olup olmadığını belirlemek için McNemar testini gerçekleştirebiliriz. Sıfır hipotezi (H0), iki modelin aynı performansa sahip olduğu, alternatif hipotez (H1) ise bir fark olduğudur.

McNemar test istatistiği, 1 serbestlik dereceli bir ki-kare dağılımını izler. Test istatistiğini aşağıdaki formülü kullanarak hesaplıyoruz:

chi2 = ((|b - c| - 1)^2) / (b + c)

Test istatistiği chi2, seçilen anlamlılık düzeyinde (örn. 0.05) ki-kare dağılımından (1 serbestlik dereceli) kritik bir değeri aşarsa, sıfır hipotezini reddederiz ve performansta önemli bir fark olduğu sonucuna varırız. iki model

McNemar testinin, eşleştirilmiş örneklerin bağımsız olduğunu ve aynı şekilde dağıtıldığını varsaydığını not etmek önemlidir. Eşleştirilmiş örnekler gerçekten bağımsız değilse veya aralarında bir tür bağımlılık varsa, bu varsayım geçerli olmayabilir. Ek olarak, McNemar testi öncelikle ikili sonuçlara uygulanabilir. Sonuç çok sınıflıysa, Cochran's Q testi veya Stuart-Maxwell testi gibi alternatif testler daha uygun olabilir.

Şimdi çoklu ikili karşılaştırmaların zorluklarını tartışmaya geçelim. Birden çok modeli veya algoritmayı karşılaştırırken, yalnızca şans eseri önemli farklılıklar bulma olasılığı giderek artıyor. Bu fenomen, çoklu karşılaştırma problemi veya çoklu test problemi olarak bilinir.

Çoklu ikili karşılaştırmalar yapılırken, karşılaştırma sayısı arttıkça en az bir anlamlı sonuç olasılığı artar. Tip I hata oranındaki bu artış, sıfır hipotezini hatalı bir şekilde reddettiğimiz yanlış pozitif bulgulara yol açabilir.

Çoklu karşılaştırma problemini çözmek için istatistiksel testlerimizin anlamlılık seviyesini ayarlamamız gerekiyor. Yaygın bir yaklaşım, istenen anlamlılık düzeyinin (örn. 0.05) yapılan karşılaştırma sayısına bölünmesini içeren Bonferroni düzeltmesidir. Örneğin, üç modeli karşılaştırıyorsak, her bir test için önem düzeyini 0,05/3 = 0,0167 olarak ayarlardık.

Bonferroni düzeltmesi, tüm karşılaştırmalarda genel Tip I hata oranının belirli bir eşiğin altında kalmasını sağlayarak, aile bazında hata oranını kontrol eden muhafazakar bir yöntemdir. Ancak, aşırı katı olabilir ve gerçek farklılıkları tespit etme gücü kaybına yol açabilir.

Anlamlılık düzeyini ayarlamaya yönelik diğer yöntemler arasında Holm-Bonferroni yöntemi, Benjamini-Hochberg prosedürü ve yanlış keşif oranı (FDR) kontrolü bulunur. Bu yöntemler, Bonferroni düzeltmesine göre daha az ihtiyatlı alternatifler sunar ve belirli durumlarda daha uygun olabilir.

Özetle, McNemar testi, iki modelin performansını ikili bir sonuç üzerinde karşılaştırmak için kullanılabilen istatistiksel bir testtir. Bununla birlikte, çoklu ikili karşılaştırmalar yapılırken, anlamlılık düzeyini ayarlayarak çoklu karşılaştırma problemini hesaba katmak önemlidir.

11.1 Lecture Overview (L11 Model Eval. Part 4)
11.1 Lecture Overview (L11 Model Eval. Part 4)
  • 2020.11.24
  • www.youtube.com
This first video goes over the model and algorithm comparison-related topics that are coved in Lecture 11.More details in my article "Model Evaluation, Model...
 

11.2 İkili Sınıflandırıcı Karşılaştırması için McNemar Testi (L11 Model Değerlendirmesi, Bölüm 4)


11.2 İkili Sınıflandırıcı Karşılaştırması için McNemar Testi (L11 Model Değerlendirmesi, Bölüm 4)

Şimdi iki modeli birbiriyle karşılaştırmak için kullanabileceğimiz bir test olan McNemar testinden bahsedelim. Bu test, geçen hafta model seçimi için tartıştığımız çapraz doğrulama yönteminden farklıdır. Çapraz doğrulamadan farklı olarak McNemar testi, eğitim seti kullanılarak modelin ayarlanmasını içermez. Bunun yerine, yayınlanmış literatürde bahsedilen bir makine öğrenimi sınıflandırıcı gibi bir web uygulaması veya GitHub aracılığıyla erişebildiğimiz mevcut bir modelimiz olduğunu varsayar. Amaç, kendi modelimizi bir test setindeki performanslarına dayalı olarak bu mevcut sınıflandırıcıyla karşılaştırmaktır.

McNemar testi, iki sınıflandırıcıyı bir test setindeki performanslarına göre karşılaştırmamızı sağlar. Quinn McNemar tarafından 1947'de tanıtıldı ve ikili karşılaştırmalar için parametrik olmayan istatistiksel bir test. Bu durumda, tahminlerin doğruluğunu (örneğin, doğru veya yanlış) temsil eden iki kategoriye sahip kategorik bir bağımlı değişkene ve karşılaştırılan iki modeli temsil eden ilgili iki gruba sahip kategorik bir bağımsız değişkene sahibiz. Eşleştirme, her iki model için de aynı test seti kullanılarak gerçekleştirilir. Testi gerçekleştirmek için, McNemar testi için özel olarak tasarlanmış karışıklık matrisinin özel bir versiyonu olan ikiye-iki karışıklık matrisi kullanıyoruz.

McNemar testi için ikiye iki karışıklık matrisi, her iki model tarafından yapılan tahminlerin sayısını içerir. Örneğin, gerçek sınıf etiketlerinin 0 ve 1 olduğu durumu ele alalım. Model 1, 1 ve 2'yi tahmin ederken, Model 2, 1 ve 1'i tahmin eder. Bu durumda "a" sayısı, hem Model 1 hem de Model 1'in tahmin ettiği tahminleri temsil eder. Model 2 doğru çıktı (örneğin, gerçek etiket 1 olduğunda 1'i tahmin etmek). "b" sayısı, Model 1'in doğru ve Model 2'nin yanlış olduğu tahminleri ve "c" sayısı, Model 1'in yanlış ve Model 2'nin doğru olduğu tahminleri temsil eder. Belirli bir test veri kümesi için bu sayıları tablolaştırarak, ikiye iki karışıklık matrisini oluşturabiliriz.

İkiye iki karışıklık matrisini kullanarak çeşitli ölçümleri hesaplayabiliriz. Örneğin, "a" ve "b" sayımlarını test setindeki toplam örnek sayısına bölerek her model için tahmin doğruluğunu hesaplayabiliriz. Ek olarak, karışıklık matrisinde "b" ve "c" sayıları ile temsil edilen Model 1 ve Model 2'nin farklı olduğu durumlarla ilgileniyoruz. Bu durumlar, bir modelin doğru tahminde bulunurken diğerinin yanlış tahminde bulunduğunu gösterir. İki modelin performansını karşılaştırmak için McNemar testini çalıştırabiliriz.

McNemar testi, tipik bir hipotez test prosedürünü izler. Bir sıfır hipotezi ve bir alternatif hipotez tanımlıyoruz. Sıfır hipotezi, iki modelin performanslarının eşit olduğunu varsayarken, alternatif hipotez performanslarının farklı olduğunu öne sürüyor. Ki-kare dağılımına yaklaşan bir ki-kare test istatistiği hesaplıyoruz. Test istatistiği (b - c)^2 / (b + c) olarak hesaplanır. Bu test istatistiğine dayanarak, sıfır hipotezinin doğru olduğunu varsayarak bir p-değeri hesaplıyoruz. p-değeri, sıfır hipotezi altında verilen test istatistiğini veya daha uç bir değeri gözlemleme olasılığını temsil eder.

Sıfır hipotezinin reddedilip reddedilmeyeceğini belirlemek için, p-değerini seçilen bir anlamlılık düzeyiyle (örneğin, 0.05) karşılaştırırız. p-değeri anlamlılık düzeyinden küçükse sıfır hipotezini reddederiz ve iki modelin performanslarının eşit olmadığı sonucuna varırız. Tersine, eğer p-değeri anlamlılık seviyesinden büyükse, sıfır hipotezini reddetmekte başarısız oluruz ve iki modelin performanslarının eşit olduğunu varsayarız.

Süreklilik düzeltmesi, 2x2 beklenmedik durum tablosundaki veriler ayrıkken, ki-kare dağılımının sürekli bir dağılım olması sorununu ele almak için tanıtıldı. Paydaki mutlak farktan 1 çıkarılarak süreklilik düzeltmesi, p-değerinin daha iyi bir şekilde tahmin edilmesini sağlamaya yardımcı olur. Ancak, süreklilik düzeltmesinin kullanımının her zaman gerekli olmadığını ve belirli bağlama ve verilere bağlı olduğunu not etmek önemlidir.

McNemar'ın testindeki bir diğer husus, kesin binom testinin kullanılmasıdır. Kesin binom testi, örneklem büyüklüğü küçük olduğunda veya ki-kare testinin varsayımları karşılanmadığında McNemar testinin istatistiksel önemini belirlemek için alternatif bir yaklaşım sağlar. Kesin binom testi, ki-kare yaklaşımına dayanmadan, sıfır hipotezi altında gözlenen verileri elde etme olasılığını doğrudan hesaplar.

Ek olarak, McNemar'ın testi ikiden fazla modeli veya tedaviyi işlemek için genişletilebilir. Bu gibi durumlarda test, genelleştirilmiş bir McNemar testi veya Cochran-Mantel-Haenszel testi olarak bilinen bir uzantı kullanılarak gerçekleştirilebilir. Bu uzantılar, farklı gruplar arasındaki bağımlılıkları dikkate alarak birden çok modelin veya tedavinin aynı anda karşılaştırılmasına olanak tanır.

Özetle, McNemar testi, eşleştirilmiş kategorik verilere dayalı olarak iki modelin veya tedavinin performansını karşılaştırmak için kullanılan parametrik olmayan istatistiksel bir testtir. Modeller arasındaki performans farklılıklarının istatistiksel olarak anlamlı olup olmadığını değerlendirmenin bir yolunu sağlar. Test, 2x2 olasılık tablosu oluşturmayı ve ki-kare dağılımıyla karşılaştırılabilen veya kesin binom testi kullanılarak değerlendirilebilen bir test istatistiğinin hesaplanmasını içerir. Araştırmacılar, McNemar testini yürüterek makine öğrenimi, tıp ve sosyal bilimler dahil olmak üzere çeşitli alanlarda farklı modellerin veya tedavilerin göreli performansına ilişkin içgörüler elde edebilir.

11.2 McNemar's Test for Pairwise Classifier Comparison (L11 Model Eval. Part 4)
11.2 McNemar's Test for Pairwise Classifier Comparison (L11 Model Eval. Part 4)
  • 2020.11.24
  • www.youtube.com
This video introduces McNemar's test, which is a nonparametric statistical test for comparing the performance of two models with each other on a given test s...