Bence ilk adım, bildirilen eğitim ve test performansının gerçekten doğru olup olmadığını kontrol etmektir.
- 5 katlı çapraz doğrulama sırasında bölme, istatistiksel olarak bağımsız cv tren / test setleri verecek şekilde yapıldı mı? Örneğin, verilerde tekrarlanan ölçümler varsa, bunlar her zaman aynı sette olur mu?
- 150 örnek 5 kat cv'de% 95,83 doğruluk, 5 vekil model için 130 eğitim örneğinden 5 yanlış, 5 * 130 eğitim örnek için 25 yanlış durum ile aynı çizgidedir.
% 98,21 test doğruluğunun açıklanması daha zordur: cv'nin bir çalışması sırasında, her durum bir kez test edilmelidir. Bu nedenle, bildirilen muhtemel sayılar% 100 / 150'lik adımlar halinde olmalıdır. % 98.21 hatalı 2.68 yanlış vakasına karşılık geliyor (150 test vakasından 2 ve 3'ü sırasıyla% 98.67 ve% 98.00 doğruluk veriyor).
Modelinizi çıkarabilirseniz, bildirilen doğrulukları harici olarak hesaplayın.
- Rasgele girdi için bildirilen doğruluklar nelerdir?
- Harici bir çapraz doğrulama yapın: verilerinizi bölün ve yalnızca eğitim bölümünü programa verin. "Harici" test verilerini tahmin edin ve doğruluğunu hesaplayın. Bu programın çıktısına uygun mu?
- Bildirilen "test doğruluğunun" bağımsız verilerden geldiğinden emin olun (çift / iç içe çapraz doğrulama): programınız veriye dayalı optimizasyon yapıyorsa (örneğin, birçok modeli karşılaştırarak "en iyi" özellikleri seçme), bu daha çok eğitim hatası gibi uygun) bir genelleme hatası gibi.
@Mbq ile, eğitim hatasının makine öğrenmede neredeyse hiç faydalı olmadığını kabul ediyorum. Ancak, gerçekte yararlı olduğu birkaç durumdan birinde olabilirsiniz: Program doğrulukları karşılaştırarak "en iyi" bir model seçerse, ancak seçim için sadece eğitim hataları varsa, eğitim hatasının gerçekten mantıklı olup olmadığını kontrol etmeniz gerekir. tercih.
@mbq, ayırt edilemez modeller için en iyi senaryoyu belirledi. Bununla birlikte, daha kötü senaryolar da ortaya çıkar: aynen test doğruluğu gibi, eğitim doğruluğu da değişime tabidir, ancak genellikle ilgilenilen genelleme doğruluğuna kıyasla iyimser bir önyargıya sahiptir. Bu, gerçekten farklı performans göstermelerine rağmen modellerin ayırt edilemeyeceği bir duruma yol açabilir. Ancak eğitim (veya dahili özgeçmiş) doğrulukları iyimser önyargıları nedeniyle onları ayırt etmek için çok yakın. Örneğin, yinelemeli özellik seçim yöntemleri, iç çapraz doğrulama doğruluğu için bile geçerli olabilecek bu sorunlara maruz kalabilir (bu çapraz doğrulama işleminin nasıl yapıldığına bağlı olarak).
Eğer böyle bir sorun ortaya çıkarsa, mantıklı bir seçimin programın karar için kullandığı doğruluklardan kaynaklanıp kaynaklanmadığını kontrol etmenin iyi bir fikir olduğunu düşünüyorum. Bu, (en iyi modelin seçilmesi için sözde kullanıldığı) dahili cv doğruluğunun, istatistiksel olarak bağımsız bölünmeye sahip harici olarak yapılan bir cv'ye göre iyimser bir şekilde önyargılı olmadığının kontrol edilmesi anlamına gelir. Yine, sentetik ve / veya rasgele veriler, programın gerçekte ne yaptığını bulmaya yardımcı olabilir.
İkinci adım, istatistik olarak bağımsız bölümler için gözlenen farklılıkların, @mbq'nin daha önce işaret ettiği gibi anlamlı olup olmadığına bakmaktır.
İstatistiki olarak anlamlı bir fark olması için verilen numune büyüklüğünüzle dikkat etmeniz gereken doğruluk farkını hesaplamanızı öneririm. Gözlemlenen varyasyonunuz daha azsa, verilen veri kümesinde hangi algoritmanın daha iyi olduğuna karar veremezsiniz: daha fazla optimizasyon mantıklı olmaz.