Veri Setlerinin Eğitim, Doğrulama ve Test Setlerine Bölünmesinin Önemi

Kardel Rüveyda ÇETİN
9 min readAug 19, 2024

--

Makine öğreniminde, modelin başarısını etkileyen en kritik faktörlerden biri, modelin üzerinde çalıştığı veri setidir. Veri setlerinin doğru bir şekilde yönetilmesi, modelin performansını optimize etmek, genelleme yeteneğini ölçmek ve aşırı öğrenme (overfitting) gibi istenmeyen durumları önlemek için hayati bir rol oynar. Bu bağlamda, veri setlerinin eğitim, doğrulama ve test setlerine bölünmesi yaygın bir uygulamadır. Her bir veri seti, makine öğrenimi sürecinin farklı aşamalarında modelin farklı yönlerini değerlendirmek ve geliştirmek için kullanılır.

Veri setlerinin bu şekilde bölünmesi, modelin sadece belirli bir veri kümesine odaklanarak öğrenmesini değil, aynı zamanda yeni ve görülmemiş verilerle karşılaştığında da başarılı olmasını sağlamayı amaçlar. Bu, modelin daha genel ve tutarlı sonuçlar verebilmesi için kritik bir stratejidir. Eğitim seti, modelin öğrenme sürecini yönlendirirken, doğrulama seti, modelin hiperparametrelerini incelemeye ve ayarlamaya yardımcı olur. Son olarak, test seti, modelin genel performansını ve gerçek dünya verileri üzerindeki başarısını ölçmek için kullanılır.

Bu yazıda, her bir veri setinin makine öğrenimindeki rolünü, neden bu şekilde ayrıldıklarını ve bu ayrımın model performansına olan etkilerini daha ayrıntılı bir şekilde ele alacağız. Veri setlerinin doğru yönetimi, makine öğrenimi modellerinin gerçek dünyadaki uygulamalarında başarılı olmasının anahtarıdır, bu nedenle bu sürecin her adımı dikkatle planlanmalıdır.

  • Eğitim Seti(Training Set)
  • Doğrulama Seti (Validation Set)
  • Test Seti (Test Set)
  • Veri Setlerinin Bölünme Oranları

1. Eğitim Seti (Training Set)

1.1 Nedir ve Ne İşe Yarar?

Eğitim seti, makine öğrenimi modellerinin temelini oluşturan verilerden oluşur. Bu veri kümesi, modelin “öğrenme” sürecinde kullanılır ve modelin parametrelerini optimize etmek için temel verileri sağlar. Eğitim seti, modelin belirli bir görev veya problem için gerekli olan örüntüleri ve ilişkileri anlamasını sağlar. Örneğin, bir resim sınıflandırma modeli geliştiriyorsanız, bu eğitim seti, modelin resimlerdeki piksellerden hangi kategorilere ait olduğunu öğrenmesini sağlar. Model, bu verilerdeki sınıflandırma, regresyon, kümeleme gibi görevler için gerekli olan temel bilgileri ve kuralları öğrenir. Eğitim sürecinde, model, bu veri seti üzerinde birçok kez çalışarak doğru tahminleri yapmayı ve hataları minimize etmeyi amaçlar.

1.2 Neden Ayrı Tutulur?

Eğitim seti, modelin öğrenme sürecini yönlendiren veriler olduğu için, bu veri kümesi üzerinde yapılan testler modelin başarısını doğru bir şekilde yansıtmayabilir. Model, eğitim setindeki verilerle sürekli olarak çalıştığı için bu verilere çok iyi adapte olabilir ve bu durum aşırı öğrenme (overfitting) riskini doğurabilir. Yani model, eğitim verilerine o kadar uyum sağlar ki, yeni, daha önce hiç görmediği verilerle karşılaştığında doğru tahminler yapamayabilir. Bu nedenle, eğitim setinin yanı sıra, modelin genelleme yeteneğini, yani yeni verilere ne kadar iyi adapte olabileceğini ölçmek için ayrı bir doğrulama ve test setine ihtiyaç vardır. Eğitim seti sadece modelin öğrenme sürecini yönlendirmeli, ancak modelin nihai performansını değerlendirmek için kullanılmamalıdır. Bu, modelin gerçek dünya verileri üzerinde nasıl performans göstereceğini daha doğru bir şekilde ölçmek için kritik bir adımdır.

2. Doğrulama Seti (Validation Set)

2.1 Nedir ve Ne İşe Yarar?

Doğrulama seti, modelin performansını değerlendirmek ve hiperparametre ayarlarını optimize etmek için kullanılan önemli bir veri kümesidir. Hiperparametreler, modelin eğitim sürecini ve yapısını belirleyen ayarlardır ve genellikle deneme yanılma yöntemiyle elle ayarlanır. Doğrulama seti, modelin bu ayarlarını test eder ve modelin en iyi performansı göstermesi için yapılandırılmasını sağlar.

Örneğin, bir yapay sinir ağı (neural network) modelinde, hiperparametreler arasında kaç katman kullanılacağı, her katmanda kaç nöron olacağı ve öğrenme oranı (learning rate) gibi kritik kararlar bulunur. Bu ayarların doğru yapılması, modelin doğruluğunu ve genelleme yeteneğini önemli ölçüde etkiler. Doğrulama seti, bu ayarların denendiği ve modelin test edilip optimize edildiği yerdir.

Diyelim ki bir sinir ağı modeli geliştirdiniz ve modeliniz eğitim seti üzerinde oldukça iyi sonuçlar veriyor. Ancak, modelin doğrulama seti üzerinde düşük performans gösterdiğini fark ediyorsunuz. Bu durum, modelin aşırı öğrenme (overfitting) yaptığını gösterir, yani model eğitim verilerine çok fazla uyum sağlamış ve genelleme yeteneği zayıflamıştır.

Bu aşamada, doğrulama seti, modelin performansını iyileştirmek için hiperparametrelerin yeniden ayarlanması gerektiğini işaret eder. Belki öğrenme oranını düşürmek, katman sayısını azaltmak veya düzenlileştirme (regularization) yöntemlerini uygulamak gerekebilir. Doğrulama seti, bu değişikliklerin etkilerini test ederek, modelin daha dengeli ve genelleştirilebilir hale gelmesine yardımcı olur.

2.2 Neden Ayrı Tutulur?

Doğrulama seti, eğitim setine ek olarak, modelin genel performansını değerlendirmek için kullanılır. Eğitim seti, modelin öğrenme sürecini yönlendirir, ancak bu veriler üzerinde yapılan değerlendirmeler modelin gerçek dünya verilerine karşı performansını doğru yansıtmaz. Doğrulama seti, modelin hiperparametrelerinin, yalnızca eğitim verilerine değil, daha geniş bir veri kümesine uygun olup olmadığını test eder.

Bu nedenle, doğrulama seti, modelin genelleme yeteneğini kontrol etmek için kritik bir rol oynar. Eğer bir model doğrulama seti üzerinde iyi performans gösteriyorsa, bu modelin aşırı öğrenme yapmadığı ve yeni, daha önce görmediği verilerle de başarılı olabileceği anlamına gelir. Örneğin, bir yüz tanıma sistemi geliştiriyorsanız, modelin yalnızca eğitim setindeki yüzleri tanıması yeterli değildir. Doğrulama seti, modelin yeni yüzleri de doğru tanıyıp tanımadığını kontrol eder. Bu, modelin gerçek dünya uygulamalarında başarılı olup olmayacağını öngörmek için önemlidir.

3. Test Seti (Test Set)

3.1 Nedir ve Ne İşe Yarar?

Test seti, modelin en son ve en kritik değerlendirme aşamasında kullanılan veri kümesidir. Bu veri seti, modelin eğitimi ve doğrulaması sırasında hiç kullanılmaz, bu nedenle modelin bu veriler üzerindeki performansı, modelin gerçek dünyada ne kadar başarılı olacağını yansıtacak şekilde değerlendirilir. Test seti, modelin hiç görmediği veriler içerir ve bu sayede modelin genel dünyadaki durumları ne kadar iyi kavradığını gösterir.

Örneğin, bir e-posta spam filtresi geliştirdiğinizi düşünün. Eğitim seti üzerinde model, spam ve spam olmayan e-postaları ayırmayı öğrenir. Doğrulama seti ise modelin hiperparametrelerinin optimize edilmesi ve performansının değerlendirilmesi için kullanılır. Ancak, modelin nihai performansı, test seti üzerinde ölçülür. Bu set, tamamen yeni ve modelin hiç görmediği e-postaları içerir. Eğer model, test setindeki e-postaları doğru şekilde spam ve spam olmayan olarak ayırabiliyorsa, bu modelin genelleme yeteneğinin güçlü olduğunu ve gerçek dünyada başarılı olacağını gösterir.

Başka bir örnek olarak, bir makine öğrenimi modelinin kredi kartı sahtekarlıklarını tespit etmek için eğitildiğini düşünelim. Eğitim seti, modelin sahte ve sahte olmayan işlemleri ayırt etmeyi öğrendiği verilerden oluşur. Doğrulama seti, modelin performansını değerlendirmek ve hiperparametreleri ayarlamak için kullanılır. Ancak, modelin gerçek dünyada ne kadar etkili olduğunu anlamak için, test seti üzerinde son bir değerlendirme yapılır. Test seti, modelin hiç görmediği işlemleri içerir. Eğer model bu işlemler üzerinde de başarılı bir şekilde sahtekarlıkları tespit edebiliyorsa, bu modelin gerçek dünya verileri üzerinde iyi çalışacağı anlamına gelir.

3.2 Neden Ayrı Tutulur?

Test setinin ayrı tutulmasının temel nedeni, modelin gerçek dünyadaki performansını değerlendirmektir. Eğitim ve doğrulama setleri üzerinde yüksek performans gösteren bir model, bu setlere aşırı uyum sağlamış olabilir, yani aşırı öğrenme (overfitting) yapmış olabilir. Bu durumda, modelin yeni ve daha önce hiç görmediği verilerle karşılaştığında aynı başarıyı göstermesi zor olabilir. Test seti, modelin bu yeni verilere nasıl tepki verdiğini, yani modelin genel dünyadaki durumları ne kadar iyi kavradığını ortaya koyar.

Test setinin ayrı tutulması, modelin genelleme yeteneğini ve gerçek dünya verileri üzerindeki başarısını ölçmek için kritik öneme sahiptir. Örneğin, bir otonom araç geliştirdiğinizi düşünün. Aracın eğitim ve doğrulama setleri üzerinde başarılı olması önemlidir, ancak asıl önemli olan, aracın gerçek dünyadaki bilinmeyen yol koşulları ve trafik durumlarıyla nasıl başa çıkacağıdır. Test seti, bu bilinmeyen koşulları simüle eder ve aracın bu yeni durumlar karşısındaki performansını değerlendirir. Eğer araç, test seti üzerinde başarılıysa, bu, aracın gerçek dünyada güvenli ve etkili bir şekilde çalışabileceği anlamına gelir.

Sonuç olarak, test seti modelin gerçek dünya performansını yansıtan son bir kontrol mekanizmasıdır. Eğitim ve doğrulama setlerine kıyasla, test seti, modelin daha önce karşılaşmadığı durumlarla başa çıkma yeteneğini ölçer ve modelin genelleme kabiliyetini değerlendirir. Bu nedenle, test seti ayrı tutulur ve sadece modelin nihai değerlendirmesi için kullanılır.

4. Veri Setlerinin Bölünme Oranları

Veri setlerinin eğitim, doğrulama ve test setlerine bölünmesi, makine öğrenimi modellerinin başarılı bir şekilde geliştirilmesi ve değerlendirilmesi için kritik bir adımdır. Genel bir kural olarak, veri setleri genellikle %70 eğitim, %20 test ve %10 doğrulama seti olarak bölünür. Ancak bu oranlar, veri setinin büyüklüğüne, problemin karmaşıklığına ve kullanılan modelin özelliklerine bağlı olarak değişiklik gösterebilir.

4.1 Özel Durumlar

Bazı veri setlerinde, veri setini rastgele bir şekilde bölmek her zaman doğru bir yaklaşım olmayabilir. Örneğin, zamana dayalı veri setleri gibi özel durumlar, verilerin zaman sırasına göre düzenlenmesini gerektirir. Bu tür veri setlerinde, geçmiş verilere dayalı bir model oluştururken, veri setini zamansal sıraya göre bölmek daha mantıklı olacaktır.

4.2 Zamana Dayalı Veri Setleri

Zamana dayalı veri setlerinde, örneğin hisse senedi fiyatları, hava durumu verileri veya trafik verileri gibi, veri setini rastgele böldüğünüzde, model gelecekteki olayları doğru bir şekilde tahmin edemez. Bu tür veri setlerinde, modelin geçmiş verilerden öğrenmesini sağlamak ve gelecekteki olayları tahmin etmek için sıralı bir bölme yapılması gerekir.

Örnek: Bir hisse senedi fiyat tahmin modeli geliştirdiğinizi düşünün. Eğitim seti olarak, geçmiş hisse senedi fiyatlarını kullanabilirsiniz. Doğrulama seti olarak yakın geçmişteki fiyatları seçebilir ve modelin performansını bu veriler üzerinde optimize edebilirsiniz. Test seti ise gelecekteki fiyatları temsil eden verilerden oluşur. Model, geçmiş verilerden öğrenerek gelecekteki fiyatları tahmin etmeye çalışır ve test seti üzerindeki performansı, modelin gerçek dünyadaki başarısını gösterir.

4.3 Küçük Veri Setleri

Veri setiniz çok küçükse, veri setini bölmek yerine çapraz doğrulama (cross-validation) yöntemini kullanmak daha uygun olabilir. Çapraz doğrulama, veri setini birden fazla alt kümeye bölerek her alt küme için ayrı eğitim ve test setleri oluşturur. Bu yöntem, küçük veri setlerinde daha güvenilir sonuçlar elde etmenizi sağlar ve modelin genelleme yeteneğini daha iyi değerlendirir.

Örnek: Eğer elinizde sadece 1000 veri noktası varsa, bu verileri %70 eğitim, %20 test ve %10 doğrulama olarak bölmek yerine, çapraz doğrulama ile her seferinde farklı bir alt kümeyi test seti olarak kullanabilirsiniz. Bu yöntem, tüm veri setinin değerlendirilmesine olanak tanır ve modelin performansı hakkında daha doğru bir fikir verir.

4.4 Dengesiz Veri Setleri

Dengesiz veri setlerinde, bazı sınıflar diğerlerine göre çok daha fazla veri noktasına sahip olabilir. Örneğin, bir hastalık teşhisi modeli geliştiriyorsanız, hastalıklı bireylerin sayısı sağlıklı bireylere göre çok az olabilir. Bu durumda, veri setini bölerken her sınıftan yeterli miktarda veri içeren dengeli alt kümeler oluşturmak önemlidir.

Bir hastalık teşhisi modeli geliştirirken, eğitim, doğrulama ve test setlerinin her birinin hem hastalıklı hem de sağlıklı bireylerden dengeli bir şekilde veri içerdiğinden emin olmalısınız. Aksi takdirde, model, azınlıkta olan sınıfları doğru bir şekilde öğrenemeyebilir ve performansı bu sınıflarda düşük olabilir. Veri setlerini bölme işlemi, problem türüne ve veri yapısına göre dikkatlice yapılmalıdır. Genel oranlar her zaman geçerli olmayabilir ve bu nedenle veri setinin özelliklerine uygun bir bölme stratejisi geliştirmek, modelin performansını ve genelleme yeteneğini artırmak için gereklidir.

Veri setlerinin eğitim, doğrulama ve test setlerine bölünmesi, makine öğrenimi projelerinde modelin başarısını ve genelleme yeteneğini objektif bir şekilde değerlendirmek için kritik bir rol oynar. Her bir veri seti, model geliştirme sürecinin farklı aşamalarında farklı amaçlara hizmet eder. Eğitim seti, modelin temel öğrenme sürecini gerçekleştirdiği ve parametrelerini optimize ettiği verileri içerir. Bu süreçte model, belirli görevleri yerine getirmek için veri içerisindeki örüntüleri ve ilişkileri öğrenir. Doğrulama seti ise modelin performansını takip etmek, hiperparametre ayarlamaları yapmak ve olası aşırı öğrenme durumlarını tespit etmek için kullanılır. Hiperparametreler modelin genel davranışını etkilediğinden, doğrulama seti bu ayarların en uygun şekilde belirlenmesinde kilit bir rol oynar.

Test seti, modelin gerçek dünyada karşılaşacağı yeni verilere nasıl tepki vereceğini değerlendirmek için kullanılır. Eğitim ve doğrulama aşamalarında modelin görmediği bu veriler, modelin genelleme yeteneğini ve farklı veri örnekleri üzerindeki performansını ölçmek için idealdir. Eğer model, test seti üzerinde de yüksek performans gösteriyorsa, bu durum modelin yalnızca eğitim verilerine değil, aynı zamanda gerçek dünya verilerine de başarılı bir şekilde genelleyebildiğini gösterir.

Veri setlerinin bu şekilde ayrılması, makine öğrenimi modellerinin güvenilir, tutarlı ve genellenebilir olmasını sağlamak için büyük önem taşır. Her bir aşama, modelin belirli bir yönünü test eder ve iyileştirir, böylece son aşamada modelin gerçek dünyada nasıl performans göstereceği konusunda daha güvenilir bir öngörü elde edilir. Bu süreç, modelin aşırı öğrenme yapmasını engelleyerek daha dengeli ve genel geçer bir performans sunmasını sağlar. Sonuç olarak, veri setlerinin bu şekilde bölünmesi, makine öğrenimi projelerinin başarıya ulaşmasında temel bir gereklilik olarak karşımıza çıkar.

Benim bugünlük anlatacaklarım bu kadar! :)

Farklı yazılarda görüşmek üzere!

Sevgiler,

--

--

Kardel Rüveyda ÇETİN

Expert Software Engineer @DogusTeknoloji | Microsoft MVP | Mathematical Engineer | Speaker | Blogger | Founder&Organizer @thecoderverse