Bir Bakışta K-Fold Cross Validation

K-Fold Cross Validation, sınıflandırma modellerinin değerlendirilmesi ve modelin eğitilmesi için veri setini parçalara ayırma yöntemlerinden biridir. Bu yazımızda k-fold cross validation (k sayısı kadar çapraz doğrulama) yöntemini anlatmaya çalışacağım.

Elimizde bin kayıtlık bir veri seti olsun. Biz bu veri setinin bir kısmı ile modelimizi eğitmek, bir kısmı ile eğittiğimiz modelimizin başarısını değerlendirmek istiyoruz. Basit yaklaşım; %75’ini eğitim için, %25’ini de test için ayırmaktır. Ancak burada veri parçalanırken verinin dağılımına bağlı olarak modelin eğitim ve testinde bazı sapmalar (bias)  ve hatalar oluşabilir. İşte k-fold cross validation, veriyi belirlenen bir k sayısına göre eşit parçalara böler, her bir parçanın hem eğitim hem de test için kullanılmasını sağlar, böylelikle dağılım ve parçalanmadan kaynaklanan sapma ve hataları asgariye indirir. Ancak modeli k kadar eğitmek ve test etmek gibi ilave bir veri işleme yük ve zamanı ister. Bu durum eğitim ve testi kısa süren küçük ve orta hacimli veriler için sorun olmasa da büyük hacimli veri setlerinde hesaplama ve zaman yönünden maliyetli olabilir.

Yukarıdaki şekil ile hemen k-fold cross validation mantığını anlayalım. En soldaki dikdörtgen 1000 kayıtlık veri setini temsil ediyor. Bu veri setini beş eşit parçaya ayırıyoruz. K burada beş oluyor. Algoritmayı, eğitim ve test setleri üzerinde beş defa çalıştırıyoruz. Birinci turda ilk 1-200 kaydı teste, 201-1000 kayıtları eğitime; ikinci turda 201-400 arası kayıtları teste, kalanları eğitime ayırıyoruz. Bu şekilde beş turu tamamlıyoruz. Her turda elde ettiğimiz test sonucunu topluyor ve beşe bölüyoruz. Çıkan sonuç model performans puanımızı veriyor. Bunu bir çok farklı sınıflandırma algoritması üzerinde denedikten sonra en yüksek puan alan algoritma daha başarılı sınıflandırmıştır diyoruz. Elbette veriyi parçalara ayırmanın ve model performansı için metrik belirlemenin de kendine göre incelikleri var ancak bu yazının amacı k-fold cross validation kavramını kısaca açıklamak olduğu için onlara girmiyorum.

5 X 2 Cross Validation

Bu yüntem k-fold cross-validation tekniğinin değişik vir versiyonudur. Bu teknikte tüm veri seti her defasında rastgele ikiye bölünür. Önce bir yarısı eğitim diğer yarısı test olarak kullanılır. Daha sonra tam tersi yapılır. Bu süreç istendiği kadar (N defa) tekrarlanır ve test sonuçları toparlanır (örneğin ortalaması). Süreç aşağıdaki grafikle de anlatılmaya çalışılmıştır.

Veriyle kalın…

Yazar Hakkında
Toplam 180 yazı
Erkan ŞİRİN
Erkan ŞİRİN
10 yılı aşkın süredir yurtiçi ve yurtdışında sektörde büyük veri mühendisliği, platform yönetimi ve makine öğrenmesi ile ilgili çalışmalar yürütmekte ve aynı zamanda birçok kurum ve şirkete danışmanlık ve eğitimler vermektedir. Çalışma alanları: Data ve MLOps platformları, gerçek zamanlı veri işleme, değişen veriyi yakalama (CDC) ve Lakehouse.
Yorumlar (7 yorum)
ALKAN ULUTAŞ
ALKAN ULUTAŞ Yanıtla
- 14:13

Gayet açıklayıcı ve net bir yazı olmuş. Paylaşım için teşekkürler.

    erkansirin78
    erkansirin78 Yanıtla
    - 14:35

    Teşekkür ederim Alkan Bey. İyi çalışmalar…

Eren
Eren Yanıtla
- 20:15

Merhaba yazınız gayet açıklayıcı ve güzel yalnız kafama takılan tek bir yer var.K sayısını neye göre belirliyoruz acaba örneğin bir çok örnekte k=10 iken bazı örneklerde k farklı değerler alabiliyor.

    Erkan ŞİRİN
    Erkan ŞİRİN Yanıtla
    - 08:05

    Merhaba, geç cevap için kususra bakmayın. Benim gördüğüm K sayısı genelde 5 veya 10 alınıyor. Burada önemli olan her bir parçanın verinin genel dağılımını temsil edebilecek asgari örneklem sayısına haiz bulunmasıdır. Eğer veriniz çok az elemandan oluşuyorsa ve siz çok yüksek bir K sayısı belirliyorsanız, her bir parça veriyi temsilden uzaklaşacak ve model testi konusunda sıkıntılar oluşacaktır. https://stats.stackexchange.com/questions/27730/choice-of-k-in-k-fold-cross-validation burada daha fazla bilgi edinebilirsiniz.

Ahmet
Ahmet Yanıtla
- 13:02

Görüntü sınıflandırmada bu yöntemin başarısı nasıldır. Ben CNN algoritmasına bu yöntemi uyguladım fakat başarı oranı yarı yarıya azaldı. Bunun sebebi nedir?

    Erkan ŞİRİN
    Erkan ŞİRİN Yanıtla
    - 11:45

    Merhaba. CV modelinizi değerlendirmenize ve sıhhati konusunda kanaat edinmenize yardımcı olur. Başarı daha çok kullandığınız sınıflandırıcı ve kullandığınız hiperparametreler ile ilgilidir. CV ortalaması, basit bölmedeki test seti ile genelde yakın çıkar. Fark büyük ise veri heterojen olabilir veya seçimle ilgili bir hata olabilir. Seçtiğiniz k sayısı çok büyükse test setinin değerlendirme gücü zayıflar ve performansı kötü gösterebilir. Şimdilik aklıma gelen bunlar. Kolay gelsin…

Pingback: Çapraz Doğrulama (Cross Validation ) | kodamcasi.com

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

×

Bir Şeyler Ara