K-kat çapraz onaylamada K seçimi


136

Bazı öğrenme algoritmalarının performansını değerlendirmek için birkaç kez -katlı çapraz doğrulama kullanıyorum , ancak değerini nasıl seçmem gerektiği konusunda hep şaşırdım .KK

Sık sık değerini gördüm ve kullandım , ancak bu benim için tamamen keyfi görünüyor ve şimdi düşünmek yerine sadece alışkanlık kullanıyorum. Bana göre değerini arttırdıkça daha iyi bir ayrıntıya sahip oluyorsunuz , bu nedenle ideal olarak çok büyütmelisiniz, ancak önyargılı olma riski de var.K=1010KK

değerinin neye gerektiğini ve algoritmamı değerlendirdiğimde bu konuda nasıl düşünmem gerektiğini bilmek isterim . Çapraz onaylamanın aşamalı sürümünü kullanırsam bir şey değiştirir mi?K


Yanıtlar:


69

seçimi bir şekilde keyfidir. İşte nasıl karar :k=10k

  • her şeyden önce, CV sonucunun varyansını azaltmak için CV'yi yeni rasgele bölmelerle tekrarlayabilir / yinelemeniz gerekir.
    Bu, yüksek => daha fazla hesaplama süresinin argümanını, zaten birçok modeli hesaplamak istediğiniz için, büyük ölçüde alakasız kılar . Temelde hesaplanan toplam model sayısını (önyüklemeye benzer şekilde) düşünüyorum. Bu yüzden 100 x 10 katlı CV veya 200 x 5 katlı CV için karar verebilirim.k

  • @ogrisel zaten büyük daha az (karamsar) önyargı anlamına geldiğini açıkladı . (Bazı istisnalar özellikle , yani bir-bir- dışlanma için bilinir ).kk=n

  • Mümkünse, bir kullanma örneklem büyüklüğü bir bölen veya tabakalı edilmelidir örnekteki grupların boyutudur.k

  • Çok büyük , yalnızca düşük sayıda örnek kombinasyonunun mümkün olduğu anlamına gelir, bu nedenle farklı olan yineleme sayısını sınırlar.k

    • Bir-çıkış için: farklı model / test örneği kombinasyonları mümkündür. Yinelemeler hiç mantıklı değil.(n1)=n=k
    • Örneğin, ve : farklı model / test örneği kombinasyonları mevcuttur. Burada tüm olası kombinasyonları incelemeyi düşünebilirsiniz, çünkü 19 yineleme katlı CV ya da toplam 190 model fazla değildir.n=20k=10(n=202)=190=19kk
  • Bu düşünceler küçük örneklem büyüklükleriyle daha fazla ağırlığa sahiptir. Daha fazla numune mevcut olduğunda, çok önemli değildir. Olası sayıda kombinasyon yakında yeteri kadar büyür, böylece (örneğin) 100 tekrarlı 10 katlı CV yinelenen olma riski taşımaz. Ayrıca, daha fazla eğitim örneği, genellikle öğrenme eğrisinin daha düz bir kısmında olduğunuz anlamına gelir; bu nedenle, vekil modeller ile tüm örneklerinde eğitilen "gerçek" model arasındaki fark önemsiz hale gelir.kn


6
(+1) detaylandırma için, fakat (-1) tekrarlama için CV'nin sayımı. Kesin kopya oluşturma riskinin ( gözlemlerin kimliklerini inceleyerek) düşük olması (yeterli veri vb. Verildiği) doğrudur, ancak model / veri yapısı kopya oluşturma riski çok yüksektir. Varyansı küçümsemekten kaçınmak için k'nin ne olduğu önemli değildir, bir CV'yi 10 defadan fazla tekrar etmem.
steffen

3
@ steffen, ogrisel'in zaten işaret ettiği şey değil mi: (vekil) modellerin gerçekten bağımsız olmadığı? Durumun bu olduğuna tamamen katılıyorum. Aslında, sonuçları (vekil) wrt modelinin kararlılığı açısından yorumlayarak bunu dikkate almaya çalışıyorum. "birkaç" numunenin değiş tokuş edilmesi (burada ayrıntılarını vermek istemedim - ama bakınız örneğin istatistik.stackexchange.com/a/26548/4598 ). Ve ben do not standart hatayı hesaplamak ziyade mesela medyan ve rapor için tekrarlamalar üzerinde gözlemlenen hataların yüzdelik. Bununla ilgili ayrı bir soru gönderirim. 5th95th
cbeleites

2
Anlıyorum. Bu yaklaşımın vekilin istikrarını tahmin etmek için geçerli olduğuna katılıyorum. Aklımda kalan şey, bir modelin diğerini daha iyi bir performans gösterip göstermediğine karar vermek için yapılan izlem-istatistiksel testti. Bir cv yolunu çok tekrarlamak, alfa hatası olasılığını tahmin edilemez bir şekilde artırır. Bu yüzden içini dış doğrulama ile karıştırıyordum (dikran'ın buraya koyduğu gibi ).
steffen

2
@cbeleites: Sana katılıyorum. Sınırlı örneklem büyüklüğüne bağlı varyans, genellikle model belirsizliği üzerinde baskındır.
jpcgandre

2
@jpcgandre: En azından duyarlılık, özgüllük vb. gibi sınıflandırma hataları için test edilen toplam vaka sayısına bağlı olarak belirsizlik hesaplanabilir. Bunun, toplam varyansın sadece bir kısmı olduğu doğru olsa da, en azından çalışmamda karşılaştığım durumlarda, bu belirsizlik genellikle o kadar büyüktür ki, kaba bir tahmin bile, sonuçların ciddi şekilde sınırlı olduğunu açıkça ortaya koymak için yeterlidir. Ve bu sınırlama kalır, 40x 10 kat çapraz doğrulama yerine 50x 8 kat veya 80x 5 kat kullanılarak ortadan kaybolmaz.
cbeleites

37

Daha büyük K, beklenen beklenen hatanın fazla tahmin edilmesine karşı daha az önyargı anlamına gelir (eğitim katları toplam veri setine yaklaştığı için), ancak daha yüksek varyans ve daha yüksek çalışma süresi (sınır durumuna yaklaşırken: Bir-Bir-Dış CV).

Öğrenme eğrisinin eğimi, training_size = total veri kümesinin% 90'ında yeterince düzse, önyargı yoksayılabilir ve K = 10 makul.

Ayrıca daha yüksek K, tahmin edeceğiniz daha doğru bir güven aralığı tahmin etmek için size daha fazla örnek verir (ya CV testi hatalarının dağılımının normalliğini varsayan parametrik standart hata ya da sadece çok doğru olmayan bir varsayım yapan parametrik olmayan bootstrap CI kullanarak) CV kıvrımları birbirinden bağımsız olmadığı için).

Düzenleme: underestimating => Beklenen gerçek hatayı fazla tahmin etmek

Düzenleme: Bu cevabın büyük K veya LOOCV için daha yüksek varyanslarla ilgili kısmı muhtemelen yanlıştır (her zaman doğru değildir). Bu cevabın simülasyonları ile daha fazla detay: Bire bir-dışarı-ayrılma-K-kat çapraz onaylamada yanlılık ve varyans (bu çalışma için teşekkürler Xavier Bourret Sicotte).


1
büyük ile yüksek varyans hakkında biraz daha açıklayabilir misiniz ? Bir ilk yaklaşım olarak bir derdin bu CV sonucu toplam varyans (= her hesaplanan hata bir tür herhangi biri ile test edilen numunelerin vekil model) nedeniyle test etmek = varyans arasındaki farklara bağlı sadece varyans + numuneler modelleri (istikrarsızlık). Neyi kaçırıyorum? knknk
cbeleites

6
Varyans ile Ortanca veya CV katlama hatalarının ortalamasını alarak elde edilen tahmini test hatasının varyansını, CV katları arasında değil, "gerçek dağılım" ile gösteririm. K büyük olduğunda, elinizde olan belirli eğitim setine çok bağlı olan LOO-CV'ye daha yakınsınız: eğer örnek sayısı azsa, gerçek dağılım bu nedenle varyansı temsil edemez. K büyük olduğunda, k katlamalı CV, eğitim setinin bu tür keyfi örneklerini simüle edebilir.
Ogrisel

8
Ek olarak: Kohavi, doktora tezinin 3. bölümünde onaylamada önyargılı sapma-tradeoffu inceliyor . Şiddetle tavsiye ederim.
steffen

3
+1, btw "daha büyük K, daha yüksek varyans anlamına gelir", anladığım kadarıyla, büyük , tüm eğitim setlerinin ortak büyük verileri olacak, böylece eğitimli modelleri biraz korelasyon gösterecek ve ilişkili test hataları ortaya çıkacaktır , bu nedenle test hatasının ortalaması daha yüksek varyansa sahip olacak, değil mi? KKKK
avokado

Evet, bunun doğru bir sezgi olduğunu düşünüyorum.
Ogrisel

0

KDoğruluğu ve genelleştirmeyi nasıl etkilediğini bilmiyorum ve bu öğrenme algoritmasına bağlı olabilir, ancak eğitim örneklerinin sayısındaki algoritmik karmaşıklığa sahip eğitim algoritmaları için neredeyse kesinlikle doğrusal (asimptotik, doğrusal) hesaplamasal karmaşıklığı etkiler. K-1Antrenman zamanı, antrenman vakası antrenman vakası sayısı kadar doğrusal ise, antrenman zamanı artar . Dolayısıyla, küçük eğitim setleri için, özellikle sınırlı sayıda eğitim örneğinden en iyi şekilde yararlanmamız gerektiğine bakıldığında, doğruluk ve genelleme hususlarını göz önünde bulundururum.

Bununla birlikte, eğitim örneklerinin sayısında (en azından doğrusal) yüksek asimptotik işlemsel karmaşıklık artışına sahip büyük eğitim setleri ve öğrenme algoritmaları için, sadece K=2sayıca doğrusal olmayan asimptotik karmaşıklığa sahip bir eğitim algoritması için hesaplama süresinde artış olmayacak şekilde seçiyorum. Eğitim örnekleri.


-6

Çözüm:

K = N/N*0.30
  • N = Veri kümesinin boyutu
  • K = Katlama

Yorum: Test setiniz olarak seçmek istediğiniz boyuta bağlı olarak% 30 yerine% 20'yi de seçebiliriz.

Örnek:

Veri kümesi boyutu ise: N = 1500; K = 1500/1500 x 0.30 = 3.33; K değerini 3 veya 4 olarak seçebiliriz

Not:

Giriş sırasındaki yüksek K değeri, çapraz onaylama dışında bırakıldığında aşırı uyuma neden olabilir. K değerindeki küçük K değeri çapraz onaylama dışında bırakıldığında yetersiz uyuma neden olur.

Yaklaşım saf olabilir, ancak yine de farklı büyüklükteki veri kümeleri için k = 10 seçilmesinden daha iyidir.


4
(-1)bu nedenle , örnek büyüklüğünden bağımsız olarak daima k = 3 veya 4 kullanmanızı öneriyoruz - bu IMHO, örnek büyüklüğünden bağımsız olarak k = 10 kullanmaktan büyük ölçüde farklı değildir. NN0.3=10.33.33=const.
cbeleites,

K = N / N * 0,3 = 10/3 olan bir sabittir. Bu nedenle, her koşul için bu değeri kullanmak mantıklı değildir.
Kamal Thapa
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.