Makine Öğrenmesinde Model Doğrulama Süreçleri: Çapraz Doğrulama

Makine Öğrenmesinde Model Doğrulama Süreçleri: Çapraz Doğrulama

Bu yazımızda, makine öğrenmesi projelerinin başarılarının daha doğru bir şekilde değerlendirimesi için önemli olan doğrulama süreçlerine, train-test yapısına ve çapraz doğrulama yöntemlerine değiniyoruz.
Serdar Tafralı09 Ağu 2023

Makine öğrenmesi projelerinde train-test kavramı, verilerin eğitim ve test olmak üzere iki gruba  ayrılmasını ifade eder. Bu aşamada verilerin eğitim ve test seti olarak ayrılması şeklinde kullanılan en basit yöntem; sınama seti yöntemidir (holdout method). Verilerin bir kısmı modelin eğitiminde, kalan kısmı ise test edilmesinde kullanılır. Bu sayede, modelin gerçek dünya verilerinde nasıl çalıştığı hakkında bir fikir edinilebilir. Model, eğitim seti ile eğitilir (training). Model bu aşamada verilerin arasındaki örüntüyü öğrenir. Daha sonra kurulan modelin veriyi genelleştirebilme ve tahmin kapasitesi test verileri ile sınanır. Bu sayede modelin genel başarısı değerlendirilir.

Ancak, train-test kavramının tek başına yeterli olmadığı durumlar da vardır. Örneğin bazı durumlarda veri kümelerinin yalnızca eğitim veya yalnızca test verisi olarak seçilmesi durumu ile karşılaşılabir. Bu durum, veri kümesinin bazı özelliklerinin veya örüntülerinin model tarafından hiç görülmemiş olmasına yol açabilir ve dolayısıyla modelin yeni, gerçek dünya verileri üzerinde başarısız olmasına neden olabilir. İşte bu noktada devreye çapraz doğrulama yöntemi girer.

 

Doğrulama ve geçerleme felsefesi

Model doğrulama ve geçerleme süreçlerinde temel hedef, modelin doğruluğunu ve performansını iyileştirmek adına, eğitim ve test süreçlerinin daha sağlam temeller üzerine inşa edilmesidir. Özellikle, doğrulama sürecinde modelin gerçek dünya verilerindeki performansı ve başarısı önceden tahmin edilirken, geçerleme sürecinde modelin genelleştirme yeteneği sınanır ve iyileştirilir. Bu doğrultuda, çeşitli çapraz doğrulama yöntemleri kullanılır.

 

Çapraz doğrulama yöntemleri

K-katlı çapraz doğrulama yöntemi (K-fold cross validation): Verilerin birden fazla kere rastgele bölünmesi ve her seferinde farklı bir veri kümesinin test verisi olarak kullanılması anlamına gelir. Bu sayede, tüm verilerin eğitim ve test verisi olarak kullanılması sağlanır ve modelin gerçek dünya verilerindeki performansı daha doğru bir şekilde değerlendirilebilir. Özellikle veri setindeki gözlem birimi sayısının zengin olmadığı durumlarda eğitim ve test setinin bölünme işlemlerinde test setinin taşıdığı bilgilerin verimliliği sorgulanabilir. Bu kapsamda holdout metoduna alternatif olarak tercih edilir. Bu yöntem iki şekilde kullanılabilir:

 

Birinci metot (çapraz doğrulama):

  1. Orijinal veri seti 5 (1-2-3-4-5) eşit parçaya bölünür.
  2. 1-2-3-4 numaralı parçalar ile model kurulur, 5 numaralı parça ile test edilir.
  3. Ardından 1-2-3-5 numaralı parçalar ile model kurulur, 4 numaralı parça ile test edilir. Aynı işlem her bir parça test verisi olarak ayrılıp deneninceye kadar devam eder.
  4. Farklı test verileri ile sınanan modelin hatalarının ve başarılarının ortalaması alınır ve çapraz doğrulama hatası elde edilir.

 

İkinci metot: Özellikle zengin ve bol gözlem değerine sahip bir veri setinde çalışıldığında yaygın olarak kullanılır.

  1. Veri seti, eğitim ve test seti olacak şekilde ikiye bölünür.
  2. Eğitim setine birinci metottaki çapraz doğrulama (cross validation) uygulanır.
  3. Daha sonra model, daha önce hiç görmediği test seti ile tekrar sınanır.

 

Stratified k-fold cross validation: Özellikle sınıf dengesizliği olan veri kümeleri için kullanılabilen bu yöntemde, her katmanda sınıfların oranları eşitlenerek daha dengeli eğitim ve test setleri oluşturulur. Bu sayede modelin, tüm sınıfları daha doğru şekilde öğrenmesi sağlanır ve genelleme yeteneği artırılır.


Leave-one-out cross validation (LOOCV): Bu yöntemde, her seferinde sadece bir veri noktası test seti olarak ayrılır ve geri kalan veriler ile model eğitilir. Bu işlem, tüm veri noktaları için tekrarlanır. LOOCV özellikle küçük veri setlerinde etkili olabilir. Ancak büyük veri setlerinde hesaplama süresi ve karmaşıklık açısından zorluklar ortaya çıkarabilir.

Şimdi konuya ilişkin somut bir örnek verelim. Bir bankanın, müşterilerinin kredi kartı başvurularını değerlendirmek için bir makine öğrenmesi modeli kullanmak istediğini düşünelim. Bankanın elindeki veri setinde, başvuruların sonucu (onaylanmış veya reddedilmiş) ve başvurulara ilişkin özellikler (yaş, gelir, kredi puanı vb.) bulunmaktadır.

Bu durumda, veri seti eğitim ve test setlerine bölünür. İlk olarak, Holdout yöntemi kullanılarak veri seti %70 eğitim ve %30 test seti olarak rastgele ayrılabilir. Ardından, k-katlı çapraz doğrulama yöntemi kullanılarak eğitim seti daha fazla rastgele alt kümeler (örneğin 5 kat) olarak bölünür ve modelin performansı bu alt kümelerle değerlendirilir.

Her bir kat için model, eğitim verileri üzerinde kurulur ve test verileri üzerinde değerlendirilir. Performans ölçütleri (doğruluk, hassasiyet, F1 puanı) elde edilir ve ortalama performans değerleri hesaplanır. Bu ortalama değerler, modelin genel başarısını gösterir ve aynı zamanda modelin problemi ne kadar iyi genelleştirdiğine dair önemli bilgiler sağlar.

Stratified k-fold crross validation yöntemi kullanılarak, her bir katmanda başvuruların onaylanmış ve reddedilmiş oranları eşitlenir. Bu sayede, her sınıfın özellikleri daha doğru şekilde öğrenilen ve başarılı bir şekilde genelleştirilen bir model elde edilir.

Son olarak, tüm eğitim süreçleri tamamlandıktan sonra model, daha önce hiç görmediği test verileri üzerinde değerlendirilir Bu son değerlendirme, modelin gerçek dünya verilerinde nasıl performans gösterdiğine dair daha güvenilir bir tahmin sunar.

Sonuç olarak, sınama yöntemi (holdout method), stratified k-fold cross validation,  leave-one-out cross validation (LOOCV), k-katlı çapraz doğrulama (k-fold cross validation) ve diğer doğrulama yöntemleri, makine öğrenmesi projelerinde daha doğru sonuçlar elde edebilmek için oldukça önemlidir. Bu yöntemler sayesinde, modellerin gerçek dünya verilerinde nasıl çalıştığı hakkında daha doğru bir fikir edinilebilir ve modelin başarısını artırmak için gerekli düzenlemeler yapılabilir. Ayrıca, doğrulama ve geçerleme felsefesi ile bu süreçlerin daha sağlam temeller üzerine inşa edildiğini ve gerçek dünya uygulamalarında modellerin daha başarılı olabileceği görülmektedir.

 

Kaynaklar

 

Miuul, Makine Öğrenmesi

Kaggle, Intro to Machine Learning

GeeksforGeeks, Sharma A., Cross Validation in Machine Learning

Towards Data Science, Grootendorst M., Validating your Machine Learning Model

Thacker, B. H., Doebling, S. W., Hemez, F. M., Anderson, M. C., Pepin, J. E., & Rodriguez, E. A. (2004). Concepts of model verification and validation


 

İlginizi Çekebilir
Miuul topluluğunun bir parçası ol!

Abone ol butonuna tıklayarak Miuul'dan pazarlama ve haber içerikleri almayı onaylıyorum.