Verileri eğitim ve test setine neden bölmek yeterli değildir?


18

Sınıflandırıcının performansına erişmek için verileri eğitim / test setine bölmem gerektiğini biliyorum. Ama bunu okumak :

Bir SVM için manuel olarak ayarlanması gereken C ayarı gibi tahminciler için farklı ayarlar (“hiperparametreler”) değerlendirilirken, tahminci en iyi şekilde performans gösterene kadar parametreler ayarlanabileceğinden, test setinde aşırı uyum riski vardır. Bu şekilde, test seti hakkındaki bilgi modele “sızabilir” ve değerlendirme metrikleri artık genelleme performansı hakkında rapor vermemektedir. Bu sorunu çözmek için, veri kümesinin yine bir başka kısmı “doğrulama seti” olarak adlandırılabilir: eğitim, eğitim setinde ilerler, daha sonra doğrulama setinde değerlendirme yapılır ve deney başarılı görünüyorsa , son değerlendirme test setinde yapılabilir.

Hiperparametrelerin ayarlanması sırasında test setinin aşırı takılmasıyla gerekçelendirilen başka bir (üçüncü) doğrulama setinin tanıtıldığını görüyorum.

Sorun şu ki, bu aşırı sığmanın nasıl ortaya çıkabileceğini anlayamıyorum ve bu nedenle üçüncü setin gerekçesini anlayamıyorum.


2
Bence buradaki karışıklığın birçoğu "validasyon" teriminin 2 veya 3 farklı anlamından geliyor. Çapraz validasyonda validasyon çoğunlukla sadece replasman-replasman prosedürü için bir isimdir. Alıntılanan metinde ayarlanan "doğrulama" IMHO'nun "ayar" veya "optimizasyon seti" olarak daha iyi anlaşılacaktır. Halbuki mühendislik veya analitik kimyada "validasyon", belirli bir son yöntemin amacına uygun olduğunu kanıtlamak anlamına gelir - ki bu "test" seti tarafından yapılır (simüle edilir, yaklaştırılır). (Bana göre, testler doğrulamadan çok daha az kesin geliyor ...)
cbeleites, Monica

Yanıtlar:


17

Modelleri yalnızca egzersiz verileri üzerinde eğitiyor olsanız bile , test setini temel alarak hiperparametreleri (örn. SVM için optimize ediyorsunuz . Aslında, performans tahmininiz iyimser olabilir, çünkü esasen en iyi durum sonuçlarını raporluyorsunuz. Bu sitedeki bazılarının daha önce de belirttiği gibi, optimizasyon istatistikteki tüm kötülüklerin köküdür .C

Performans tahminleri her zaman tamamen bağımsız veriler üzerinde yapılmalıdır. Test verisine dayalı olarak bazı yönleri optimize ediyorsanız, test verileriniz artık bağımsız değildir ve bir doğrulama kümesine ihtiyacınız olacaktır.

Bununla başa çıkmanın bir başka yolu, birbirinin etrafına sarılmış iki çapraz doğrulama prosedüründen oluşan iç içe çapraz geçerliliktir . İç çapraz validasyon ayarlamada kullanılır (optimize edilen belirli bir hiperparametre setinin performansını tahmin etmek için) ve dış çapraz validasyon tüm makine öğrenme boru hattının genelleme performansını tahmin eder (yani hiperparametreleri optimize etmek + son modeli eğitmek ).


Yanlış olabilirim ama test seti sadece hiperparametrelerin ayarlanması için değil, aynı zamanda cevabımda belirttiğim gibi SVM'nin performansı gibi LDA veya rasgele orman gibi farklı teknikleri karşılaştırmak içindir.

@fcoppens Evet, kesinlikle. Bundan açıkça bahsetmedim, ama bu kesinlikle bu adıma da uyuyor.
Marc Claesen

1
daha genel olarak, buradaki ayarlama veya optimizasyon, her türlü veri güdümlü (iç çapraz doğrulama ile) işlemdir.
cbeleites Monica

@MarcClaesen Bir sorum var. Hiperparametrenin 2 farklı değeri varsa ve bu 2 modeli eğitim setine sığdırırsam, test setine uygularsam, test setinde elde ettiğim hata oranı, gerçek tahmin hata oranının tarafsız tahmincisiyse bu 2 model? Çünkü şimdi bana başka bir bağımsız test veri seti verirseniz, bu yeni test veri seti özünde önceki test setiyle aynıdır. Dolayısıyla, bir modelin daha iyi test puanı varsa, yeni bir test veri setindeki diğer modelden daha iyi performans göstermesi gerekir. Doğrulama setine neden ihtiyacımız var?
KevinKim

"Test verisine dayalı olarak bazı yönleri optimize ediyorsanız, test verileriniz artık bağımsız değildir ve bir doğrulama kümesine ihtiyacınız olacaktır." bu anlayışlı
Sudip Bhandari

11

Bence şeyleri bu şekilde düşünmenin en kolay yolu. Çapraz doğrulamanın iki model vardır: bir model / algoritmanın hiper parametrelerini ayarlamak ve bir model / algoritmanın performansını değerlendirmek .

İlk kullanımı, algoritmanın gerçek eğitiminin bir parçası olarak düşünün. Örneğin, bir GLM için düzenlileştirme mukavemetini belirlemek için çapraz doğrulama, GLM'nin nihai sonucunun oluşturulmasının bir parçasıdır. Bu kullanıma tipik olarak dahili çapraz doğrulama denir . (Hiper) parametreler hala ayarlandığından, ayar seti kaybı gerçek algoritma performansının büyük bir ölçüsü değildir.

Çapraz doğrulamanın ikinci kullanımı, öngörücü gücünü test etmek için modeli üreten tüm süreçte tutulan verileri kullanmaktır. Bu işleme harici çapraz doğrulama denir .

Dahili doğrulama, modeli üreten sürecin bir parçası olabilir, bu nedenle birçok durumda hem dahili hem de harici çapraz doğrulama gereklidir.


Şahsen, "dış çapraz geçerlilik" ifadesini kullanmam, çünkü çapraz geçerliliği, model seçimi ve ayarlama amaçları için eğitim setinden farklı geçerlilik setlerinin tekrar tekrar bölünmesi olarak görüyorum . Son modelin performansını değerlendirmek için kullanılan henüz bilinmeyen veriler için bir defalık bir proxy olduğu için bunu test setiyle tekrar tekrar anlamlı bir şekilde yapamazsınız.
Henry

3
Henry, dış çapraz doğrulamayı anladığını sanmıyorum. Geri kalan tüm eğitim prosedürünüzü gerçekleştirirken (dahili çapraz doğrulamayı da içerebilir) test amacıyla tüm verilerinizin bir kısmını tekrar tekrar tutarak "bunu test setiyle tekrar tekrar yapabilirsiniz". Harici çapraz doğrulama hala tipik olarak katlar halinde yapılır ve tüm orijinal verilerin bir noktada test setinde olmasına izin verir.
jlimahaverford

αα

2

Model oluşturma sırasında modellerinizi bir eğitim örneği üzerinde eğitirsiniz . Farklı modelleri (örneğin, SVM, LDA, Random Forest, ... gibi farklı teknikler veya ayarlama parametrelerinin farklı değerleri veya bir karışımla aynı teknik) eğitebileceğinizi unutmayın .

Eğittiğiniz tüm farklı modeller arasında bir tane seçmelisiniz ve bu nedenle test örneğinde en küçük hataya sahip olanı bulmak için doğrulama örneğini kullanmalısınız .

Bu 'son' model için hala hatayı tahmin etmek zorundayız ve bu nedenle test örneğini kullanıyoruz .


1
İkinci ve üçüncü paragraflarınızdaki ifadeleri tersine çeviririm: En iyi modeli bulmak ve hiperparametrelerini ayarlamak için doğrulama setini kullanırdım (bunu, eğitim setini bu çapraz doğrulamayı yapan çeşitli doğrulama kümeleriyle yapıyor ) ve model bir kez sonuçlandırıldıktan sonra modelin örnek dışı performansının bir örneğini görmek için test setine uygulayın.
Henry

@Henry: Tamam Henry, aşamaların etiketlerinin sıralarından / içeriklerinden daha az önemli olduğunu düşünüyorum, ancak

1

Çapraz doğrulama, model seçimindeki aşırı uydurma probleminin tamamen üstesinden gelmez, sadece azaltır. Çapraz doğrulama hatası, kullandığınız veri kümesine bağlıdır. Veri kümesi ne kadar küçük olursa, çapraz doğrulama hatası o kadar yüksek olur.

Ek olarak, model seçiminde yüksek derecede serbestliğiniz varsa, çapraz doğrulama kriteri aşırı yüklendikçe modelin kötü performans göstermesi tehlikesi vardır.

Bu nedenle, veriler eğitim ve test setleri olmak üzere 2 sete ayrıldığında, bölünme statik olarak yapılır. Bu nedenle, eğitim setine aşırı takılma şansı var. Ancak, çapraz doğrulama setleri şu şekilde oluşturulur: , 2-setli bölünmenin tam uyum ödülünün ortadan kaldırılmasına yardımcı olan k-kat çapraz doğrulaması, Ayrılma-bir-çapraz doğrulama (LOOCV) gibi farklı yöntemlerle böylece aşırı uyum şansı azalır.

Bunlar daha iyi anlamanıza yardımcı olacak bazı kaynaklardır .

Dolayısıyla, çapraz doğrulama, daha küçük bir veri kümesinden ziyade daha büyük bir veri kümeniz olduğunda size yardımcı olacaktır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.