Soru:
K-katlamalı çapraz doğrulama aşırı uyuma neden olabilir mi?
eric2323223
2019-07-09 08:01:52 UTC
view on stackexchange narkive permalink

$ k $ katlamalı çapraz doğrulama öğreniyorum.Modeli eğitmek için her kat kullanılacağından ( $ k $ yinelemelerde), bu aşırı uyuma neden olmaz mı?

Lütfen eğitimin her yinelemeden sonra "veriler hakkında bildiği her şeyi unutan" modelle yeniden başladığını unutmayın.
Bilginize: [Çapraz doğrulama, aşma sorununun üstesinden nasıl gelir?] (Https://stats.stackexchange.com/questions/9053/how-does-cross-validation-overcome-the-overfitting-problem)
Iki yanıtlar:
Has QUIT--Anony-Mousse
2019-07-09 10:44:31 UTC
view on stackexchange narkive permalink

K-katlamalı çapraz doğrulama, aşırı uyumu saptamak için standart bir tekniktir. Nedensellik anlamında aşırı uyuma "neden olamaz".

Bununla birlikte, k-katı çapraz doğrulamanın, aşırı uyumu ortadan kaldırdığına dair bir garanti yoktur. İnsanlar onu aşırı uyum için sihirli bir tedavi olarak kullanıyor, ama öyle değil. Yeterli olmayabilir.

Çapraz doğrulamayı uygulamanın doğru yolu, aşırı uyumu saptama yöntemidir. CV yaparsanız ve test ile eğitim hatası arasında büyük bir fark varsa , fazla uygun olduğunuzu ve daha çeşitli veriler almanız veya daha basit modeller ve daha güçlü bir düzenleme seçmeniz gerektiğini bilirsiniz. Bunun tersi geçerli değildir: Test ile tren hatası arasındaki büyük bir fark, gereğinden fazla uyum sağlamadığınız anlamına gelmez.

Bu sihirli bir tedavi değil, aşırı uyumu tespit etmenin en iyi yöntemi (doğru kullanıldığında) .

Çapraz doğrulamanın başarısız olabileceği bazı örnekler:

  • veriler sıralanır ve bölünmeden önce karıştırılmaz
  • dengesiz veriler (tabakalı çapraz doğrulamayı deneyin)
  • farklı kıvrımlarda kopyalar
  • doğal gruplar (ör. aynı kullanıcıdan gelen veriler) birden çok kat halinde karıştırıldı

Tamamen doğru kullanıldığında bile bilgi sızıntısını ve açıklığı tespit edemediği başka durumlar da vardır. Örneğin, zaman serilerini analiz ederken, insanlar verileri standartlaştırmayı, geçmiş ve gelecekteki verilere ayırmayı ve ardından bu stokların gelecekteki gelişimini tahmin etmek için bir model eğitmeyi severler. İnce bilgi sızıntısı ön işleme aşamasındaydı: Geçici bölünmeden önce standardizasyon, geri kalanların ortalaması hakkında bilgi sızdırıyor. Diğer ön işlemlerde de benzer sızıntılar meydana gelebilir. Aykırı değer tespitinde, verileri 0: 1 olarak ölçeklendirirseniz, bir model 0 ve 1'e yakın değerlerin gözlemleyebileceğiniz en uç değerler olduğunu öğrenebilir vb.

Sorunuza geri dönün:

Her kat, modeli eğitmek için kullanılacağından (yinelemelerde), bu aşırı uyuma neden olmaz mı?

Hayır.Her kat, sıfırdan yeni bir model eğitmek, doğruluğunu tahmin etmek ve ardından model atılmak için kullanılır.Y CV sırasında eğitilen modellerden hiçbirini kullanmazsınız.

Doğrulamayı (CV gibi) iki amaç için kullanıyorsunuz:

  1. Üretimde henüz gerçek bir A-B testi riskine girmeden modelinizin (umarız) uygulamada ne kadar iyi çalışacağını tahmin edin.Yalnızca şu anki yaklaşımınızdan daha iyi çalışması beklenen modellerle canlı yayına geçmek istiyorsunuz, yoksa bu şirketinize milyonlara mal olabilir.
  2. Nihai modelinizi ( tüm eğitim verileriyle eğitmek istediğiniz) eğitmek için "en iyi" parametreleri bulun.Hiperparametrelerin ayarlanması, eğer dikkatli olmazsanız aşırı uyum riskinizin yüksek olduğu zamandır.

Özgeçmiş, 10 grup veriyi besleyerek bir modeli "eğitmenin" bir yolu değildir .

Frans Rodenburg
2019-07-09 09:26:57 UTC
view on stackexchange narkive permalink

Aksine, çapraz doğrulama, aşırı uyumla mücadele etmenin iyi bir yoludur!


Neden $ k $ -katlamalı CV?

Bir modeliniz olduğunu ve örneklem dışı performansının bir tahminini istediğinizi varsayalım ...

Tahmin hatasını modele uymak için kullanılan verilerle (ör. eğitim hatası) değerlendirebilirsiniz, ancak bu açıkça out örneklem performansının iyi bir göstergesi değildir. Model gerçekten gereğinden fazla uygunsa, yeni gözlemlerde düşük performans gösterecek, ancak yine de düşük bir eğitim hatası gözlemleyeceksiniz.

Alternatif olarak, verilerinizi iki kısma (eğitim / test) ayırabilir ve yalnızca modele uyması için tren kümesini kullanabilirsiniz. Model tarafından hiçbir şekilde görülmeyen verilerin geri kalanı, daha sonra örneklem dışı performansın bir tahminini elde etmek için kullanılır. Harika! Ama ya farklı bir bölme kullansaydık? Görünüşe göre, farklı bölmelerden elde edilen sonuçlar arasındaki fark oldukça büyük olabilir ... aslında o kadar büyük ki, veri bölme yalnızca gerçekten büyük $ n $ için güvenilirdir .

$ k $ -fold CV'nin aşağıdakileri tekrar tekrar yaparak uğraşmaya çalıştığı şey budur:

  • Modelinize $ n - \ frac {n} {k} $ gözlemleri yerleştirin;
  • Kalan $ \ frac {n} {k} $ gözlemlerindeki , modelinize uymak için kullanılmayan performansını gözlemleyin .

Bu işlemi $ k $ kez, her seferinde sonraki $ \ frac {n} {k Tüm gözlemler bir kez test seti olarak kullanılıncaya kadar, test için} $ gözlem. Daha sonra her bir katlamanın test kümesindeki hataları toplarsınız (veya ağırlıklı ortalama hesaplarsınız) ve kullanılan belirli bölünmelere daha az duyarlı olan örneklem dışı performans tahminine sahip olursunuz, çünkü artık $ k $ . $ ^ \ dagger $


Bu, aşırı uymaya neden olabilir mi?

Şimdi sorunuzu yanıtlamak için:

each katlama modeli'yi eğitmek için kullanılacağından ( $ k $ yinelemelerde), bu aşırı uyuma neden olmaz mı?

Her katlama aslında aynı modeli sıfırdan eğitmek için kullanılır. Bu nedenle, eğitim setleri arasında gerçekten bir çakışma olsa da ve bu nedenle, models'yi aynı verilere (kısmen) birden çok kez uyuyor olsanız da, verileri tahminlerinizi güncellemek için yeniden kullanmıyorsunuz!

Modeliniz belirli bir kata fazla sığarsa, o katın eğitim hatası, o katın test hatasından daha düşük olacaktır. Bu nedenle, tüm kıvrımların hatalarını toplarken / ortalamalarını alırken, aşırı uyan bir modelin çapraz doğrulanmış performansı düşük olacaktır.


$ \ dagger $ : Daha da iyisi, eğer sayısal olarak karşılayabiliyorsanız, $ k $ span> -CV'yi birden çok kez katlayın.



Bu Soru-Cevap, otomatik olarak İngilizce dilinden çevrilmiştir.Orijinal içerik, dağıtıldığı cc by-sa 4.0 lisansı için teşekkür ettiğimiz stackexchange'ta mevcuttur.
Loading...