İyi yazılım mühendisliği projelerinin tümü, uygulamalarını test etmeye önemli ölçüde zaman ayırır. Benzer şekilde, tahminlerinin doğruluğunu belirlemek için ML modelinizi test etmenizi önemle tavsiye ederiz.
Eğitim, doğrulama ve test kümeleri
Bir modeli, eğitmek için kullanılanlardan farklı bir örnek kümesiyle test etmeniz gerekir. Birazdan öğreneceğiniz gibi, farklı örnekler üzerinde test yapmak, modelinizin uygunluğunun aynı örnek grubu üzerinde test yapmaktan daha güçlü bir kanıtıdır.
Bu farklı örnekleri nereden alıyorsunuz? Geleneksel olarak makine öğrenimindeki bu farklı örnekleri, orijinal veri kümesini bölerek elde edersiniz. Bu nedenle, orijinal veri kümesini iki alt kümeye ayırmanız gerektiğini varsayabilirsiniz:
Eğitimli modelin değerlendirilmesi için bir test kümesi.
Alıştırma: Sezgilerinizi kontrol edin
Birden fazla turda eğitim veri kümesinde eğitim alıp test veri kümesinde değerlendirme yaptığınızı varsayalım. Her turda, hiperparametreleri ve özellik kümesini nasıl güncelleyeceğinize dair yol göstermesi için test kümesi sonuçlarını kullanırsınız. Bu yaklaşımla ilgili bir sorun görüyor musunuz? Yalnızca bir yanıt seçin.
Bu işlemi birçok kez yapmak, modelin test setinin özelliklerine dolaylı olarak uymasına neden olabilir.
Evet! Aynı test grubunu ne kadar sık kullanırsanız modelin test grubuna o kadar yakın olma olasılığı artar.
"Sınava yönelik eğitim veren" bir öğretmen gibi model de farkında olmadan test veri kümesine uyar. Bu durum, modelin gerçek verilere uymasını zorlaştırabilir.
Bu yaklaşım uygundur. Sonuçta, eğitim veri kümesinde eğitim alıyor ve ayrı bir test veri kümesinde değerlendirme yapıyorsunuz.
Aslında burada hassas bir sorun var. Yavaş yavaş ne gibi sorunlar çıkabileceğini düşünün.
Bu yaklaşım, hesaplama açısından verimli değildir. Her test turundan sonra hiperparametreleri veya özellik gruplarını değiştirmeyin.
Sık test yapmak pahalı ancak kritik bir işlemdir. Ancak sık sık test yapmak, ek eğitimden çok daha ucuzdur. Hiper parametreleri ve özellik kümesini optimize etmek model kalitesini önemli ölçüde artırabilir. Bu nedenle, bu konular üzerinde çalışmak için her zaman zaman ve hesaplama kaynakları ayırın.
Veri kümesini iki gruba ayırmak iyi bir fikirdir ancak daha iyi bir yaklaşım, veri kümesini üç alt kümeye ayırmaktır.
Eğitim ve test kümelerine ek olarak üçüncü alt küme:
Eğitim kümesinden elde edilen sonuçları değerlendirmek için doğrulama kümesini kullanın.
Doğrulama veri kümesinin tekrar tekrar kullanılması, modelinizin iyi tahminler yaptığını gösteriyorsa modelinizi tekrar kontrol etmek için test veri kümesini kullanın.
Aşağıdaki şekilde bu iş akışı önerilmektedir.
Şekilde "Modeli ayarlama", öğrenme hızını değiştirmekten özellikler eklemeye veya kaldırmaya, sıfırdan tamamen yeni bir model tasarlamaya kadar modelle ilgili her şeyi ayarlama anlamına gelir.
Bu iş akışı sonunda, test veri kümesinde en iyi performansı gösteren modeli seçersiniz.
Şekil 10'da gösterilen iş akışı en uygun olanıdır ancak bu iş akışı kullanılsa bile test ve doğrulama kümeleri tekrarlanan kullanımla "yıpranır".
Yani, hiper parametre ayarları veya diğer model iyileştirmeleri hakkında karar vermek için aynı verileri ne kadar çok kullanırsanız modelin yeni verilerle ilgili iyi tahminler yapma olasılığı o kadar düşük olur.
Bu nedenle, test ve doğrulama kümelerini "yeniden oluşturmak" için daha fazla veri toplamak iyi bir fikirdir. Yeniden başlamak, sıfırlamak için harika bir yöntemdir.
Alıştırma: Sezgilerinizi kontrol edin
Veri kümesindeki tüm örnekleri karıştırıp karıştırılan örnekleri eğitim, doğrulama ve test kümelerine ayırdınız. Ancak test kümenizdeki kayıp değeri o kadar düşük ki bir hata olduğundan şüpheleniyorsunuz. Sorun ne olabilir?
Test veri kümesindeki örneklerin çoğu, eğitim veri kümesindeki örneklerin kopyasıdır.
Evet. Bu durum, çok fazla gereksiz örnek içeren bir veri kümesinde soruna yol açabilir. Test yapmadan önce test veri kümesindeki kopya örnekleri silmenizi önemle tavsiye ederiz.
Eğitim ve test, belirlenemez. Bazen şans eseri test kaybınız inanılmaz derecede düşük olur. Sonucu onaylamak için testi yeniden çalıştırın.
Kayıp her çalıştırmada biraz değişse de makine öğrenimi piyangosunu kazandığınızı düşünecek kadar fazla değişmemelidir.
Test veri kümesi, modelin iyi performans gösterdiği örnekleri içeriyordu.
Örnekler iyice karıştırıldığı için bu olasılık son derece düşüktür.
Test setleriyle ilgili diğer sorunlar
Önceki soruda gösterildiği gibi, yinelenen örnekler model değerlendirmesini etkileyebilir.
Bir veri kümesini eğitim, doğrulama ve test kümelerine ayırdıktan sonra, doğrulama veya test kümesinde bulunan ve eğitim kümesindeki örneklerin kopyası olan tüm örnekleri silin. Bir modelin adil test edilmesi için kopya örnekler değil, yeni örnekler kullanılmalıdır.
Örneğin, konu satırı, e-posta gövdesi ve gönderenin e-posta adresini özellik olarak kullanarak bir e-postanın spam olup olmadığını tahmin eden bir model düşünün.
Verileri 80-20 oranında eğitim ve test kümelerine ayırdığınızı varsayalım.
Eğitimden sonra model hem eğitim veri kümesinde hem de test veri kümesinde% 99 doğruluk elde eder. Test kümesinde daha düşük bir hassasiyet elde etmeyi beklediğiniz için verilere tekrar göz atar ve test kümesindeki örneklerin çoğunun eğitim kümesindeki örneklerin kopyası olduğunu keşfedersiniz. Sorun, verileri bölme işleminden önce aynı spam e-postayla ilgili yinelenen girişleri giriş veritabanınızdan temizlememenizdir. Test verilerinizin bir kısmını yanlışlıkla eğittiniz.
Özet olarak, iyi bir test veya doğrulama kümesi aşağıdaki tüm ölçütleri karşılar:
İstatistiksel olarak anlamlı test sonuçları elde edecek kadar büyük olmalıdır.
Veri kümesini bir bütün olarak temsil eder. Diğer bir deyişle, eğitim veri kümesinden farklı özelliklere sahip bir test veri kümesi seçmeyin.
Modelin, iş amacının bir parçası olarak karşılaşacağı gerçek dünya verilerini temsil eder.
Eğitim kümesinde yinelenen sıfır örnek.
Alıştırmalar: Öğrendiklerinizi test edin
Sabit sayıda örnek içeren tek bir veri kümesi verildiğinde aşağıdaki ifadelerden hangisi doğrudur?
Modelin test edilmesinde kullanılan her örnek, modelin eğitiminde kullanılan bir örnekten daha azdır.
Örnekleri eğitim/test/doğrulama kümelerine bölme işlemi sıfır toplamlı bir oyundur.
Bu, temel değiş tokuştur.
Test kümesindeki örnek sayısı, doğrulama kümesindeki örnek sayısından büyük olmalıdır.
Teorik olarak, doğrulama kümesi ve test kümesi aynı sayıda örnek veya yaklaşık olarak aynı sayıda örnek içermelidir.
Test kümesindeki örnek sayısı, doğrulama kümesindeki veya eğitim kümesindeki örnek sayısından daha büyük olmalıdır.
Eğitim kümesindeki örnek sayısı genellikle doğrulama kümesindeki veya test kümesindeki örnek sayısından daha fazladır. Ancak farklı kümeler için yüzde şartı yoktur.
Test veri kümenizin istatistiksel olarak anlamlı bir test yürütmek için yeterli örnek içerdiğini varsayalım. Ayrıca, test grubuna karşı test yapmak düşük kayıp sağlar. Ancak model gerçek dünyada kötü performans gösterdi. Bu durumda ne yapmanız gerekir?
Asıl veri kümesinin gerçek dünyadaki verilerden nasıl farklı olduğunu belirleyin.
Evet. En iyi veri kümeleri bile gerçek hayattaki verilerin yalnızca bir anlık görüntüsüdür; temel gerçek bilgi zaman içinde değişme eğilimindedir. Test veri kümeniz, eğitim veri kümenizle iyi bir model kalitesi önerecek kadar iyi eşleşmesine rağmen veri kümeniz gerçek verilerle muhtemelen yeterince eşleşmiyor.
Yeni bir veri kümesiyle yeniden eğitmeniz ve yeniden test etmeniz gerekebilir.
Aynı test grubunda yeniden test edin. Test sonuçları anormal olabilir.
Yeniden test etmek biraz farklı sonuçlar verebilir ancak bu taktik muhtemelen çok yararlı değildir.
Test veri kümesi kaç örnek içermelidir?
İstatistiksel olarak anlamlı bir test elde etmek için yeterli örnek.
Evet. Kaç örnek var? Deneme yapmanız gerekir.
Asıl veri kümesinin en az% 15'i.
%15, yeterli örnek sayısı olabilir veya olmayabilir.