Çapraz doğrulama tekniklerinin özeti


43

Merak ediyorum, aralarındaki farkları tartışan ve her birinin ne zaman kullanılacağına dair bir rehber içeren çapraz doğrulama tekniklerinin bir özetini bilen var mı merak ediyorum. Vikipedi'nin en yaygın teknikleri içeren bir listesi var , ancak başka teknikler olup olmadığını ve onlar için herhangi bir taksonomi olup olmadığını merak ediyorum.

Örneğin, sadece aşağıdaki stratejilerden birini seçmeme izin veren bir kütüphaneye giriyorum:

  • Uzak tutun
  • çizme atkısı
  • K Çapraz doğrulama
  • Bir tanesini bırak
  • Tabakalı Çapraz Doğrulama
  • Dengeli Tabakalanmış Çapraz Doğrulama
  • Tabakalı Bekletme
  • Tabakalı Önyükleme

ve önyükleme, tutma veya CV'de tabakalı ve dengeli ne anlama geldiğini anlamaya çalışıyorum.

İsterlerse bu gönderiyi bir topluluk wiki'sine dönüştürebilir ve burada teknikler veya taksonomi tartışmalarını toplayabiliriz.


Bu harika soru, yöntemlerin her birinin açıklamalarına bağlanabilirsek daha da faydalı olacaktır.
mkt - Monica

Yanıtlar:


16

Bu listeye ekleyebilirsiniz:

  • Tekrarlanan çapraz doğrulama
  • Gruptan ayrılma çapraz onaylama
  • Torba Dışı (rastgele ormanlar ve diğer torbalı modeller için)
  • 632+ önyükleme

Bu teknikleri nasıl kullanacağımı ya da ne zaman kullanacağımı bilmiyorum. CV paketini, Önyükleme, Önyükleme632, bir kez dışarıda bırakma, grup dışında bırakma ve çanta dışı çapraz doğrulama işlemlerini karşılaştırmak için caret paketini R'de kullanabilirsiniz.

Genelde, genellikle boostrap kullanıyorum, çünkü tekrarlanan k-kat CV veya hesaptan bırakma CV'den daha az hesaplama yoğunluğu var. Boot632, benim seçim algoritmam çünkü önyüklemeden daha fazla hesaplama gerektirmiyor ve bazı durumlarda çapraz onaylamadan veya temel önyüklemeden daha iyi olduğunu gösteriyor.

Neredeyse her zaman çapraz doğrulama yerine rastgele ormanlar için çanta dışı hata tahminlerini kullanırım. Torba dışı hatalar genellikle tarafsızdır ve rastgele ormanlar olduğu gibi hesaplanması için yeterince uzun sürer.


3
Bunların ne zaman kullanılacağına dair herhangi bir tavsiye?
whuber

16

K-fold cross-validation (CV) verilerinizi rastgele K bölümlerine böler ve sırayla bu K bölümlerinden birini test durumu olarak tutar ve diğer K-1 bölümlerini egzersiz verileriniz olarak toplarsınız. Bir Çıkmayı Bırakın (LOO) N veri öğenizi alıp N-katlı CV yaptığınız özel durumdur. Bir anlamda, Beklet, K katlarından birini test olarak seçtiğin ve tüm K katlarından geçmediğin başka bir özel durum.

Bildiğim kadarıyla, 10-kat CV, veriminizi verimli bir şekilde kullandığı ve aynı zamanda şanssız bölüm seçimlerinden kaçınmaya yardımcı olduğu için oldukça zorlayıcıdır. Bekletme verilerinizi verimli kullanmaz ve LOO o kadar sağlam değildir (veya buna benzer bir şey), ancak 10'luk katlama doğru.

Verilerinizin birden fazla kategori içerdiğini ve bir veya daha fazla kategorinin diğerlerinden çok daha küçük olduğunu biliyorsanız, K rastgele bölümlerinizden bazıları kötü olabilecek küçük kategorilerden hiçbirini içermeyebilir. Her bölümün makul düzeyde temsili olduğundan emin olmak için, tabakalaşmayı kullanırsınız: verilerinizi kategorilere ayırın ve ardından her kategoriden rasgele ve orantılı olarak seçerek rasgele bölümler oluşturun.

K-fold CV'deki tüm bu varyasyonlar, verilerinizi değiştirmeden seçin. Önyükleme verileri değiştirmeyle seçer, böylece aynı veriler birden çok kez eklenebilir ve bazı veriler hiç eklenmeyebilir. (Her "bölüm", ayrıca her bölümün N / K öğelerine sahip olduğu K-katlamanın aksine, N öğelerine de sahip olacaktır.)

(Önyükleme işleminin CV'de tam olarak nasıl kullanılacağını tam olarak bilmediğimi itiraf etmeliyim. Test ve CV ilkesi, üzerinde çalıştığınız verileri test etmediğinizden emin olmaktır. Teknik + katsayılarınızın gerçek dünyada nasıl işleyebileceği konusunda daha gerçekçi bir fikir.)

EDIT: "Bekletme etkin değil" yerine "Bekletme verilerinizi verimli kullanmıyor" ifadesiyle, yorumlara göre netleştirmek için.


1
"Bekletme etkin değil" derken, takip ettiğimden emin değilim. Buradaki verimlilikten kastınız nedir? Düzenli N katlamanın aksine, Hold Out katlar arasında dönmez, bu yüzden daha hızlı olması gerekir. Bunun yerine, normal N-fold CV'den daha fazla donanım kullanmakla mücadele etmenin daha mı kötü olduğunu mu kastediyorsunuz?
Amelio Vazquez-Reina

2
"Etkin" derken, verilerinizi verimli bir şekilde kullanmadığı anlamına gelir. K-fold CV'nin güzelliği, verilerinizin% 100'ünün eğitim için kullanıldığını ve verilerinizin% 100'ünün test için kullanıldığını ve böylece verilerinizin verimli kullanıldığını gösterir. Anahtar, elbette, tüm verilerinizin aynı anda hem test hem de eğitim için kullanılmaması, bu da iyimser test sonuçlarına yol açmasıdır (fazladan uydurma). Statik bir bölüm oluşturarak, Hold Out, verilerinizin 1 / 3'ünün eğitim için hiçbir zaman kullanılmayacağını ve verilerinizin 2 / 3'ünün asla test etmek için kullanılmayacağını ve verilerinizde çok fazla bilgiyi boşa harcayamayacağını söylüyor.
Wayne,

@Wayne Holdout tahmincisi asimptotik olarak tarafsız değil mi? Ayrıca, basit k-katlama CV, tekrarlanan k-katlama CV'den ziyade tip II hataya meyillidir.
chl

@chl: Her iki konuda da haklı olduğuna inanıyorum. Tekrarlanan K-fold CV kullanmamıştım, fakat yardımcı olacak daha düşük varyansa sahip olmalı.
Wayne


1

... ve her birinin ne zaman kullanılacağına dair bir rehber ...

Ne yazık ki, bu sorun kredi alacağından daha zor. En az 2 temel çapraz doğrulama kullanımı vardır: bir model seçmek ve model performansını değerlendirmek.

Kabaca söylemek gerekirse, yüksek bir test-tren oranı kullanarak verileri bölen bir CV varyantı kullanıyorsanız, değerlendirme için bu daha iyi olabilir. Daha büyük bir eğitim seti kullanmak, tüm veri setine uyan modelin performansını daha doğru bir şekilde taklit edecektir.

Ancak yüksek bir trene test oranı seçim için daha kötü olabilir. Gerçekten seçmeniz gereken "en iyi" bir model olduğunu hayal edin, ancak veri kümeniz oldukça büyük. O zaman, biraz fazla oturan çok büyük modeller "en iyi" modelle neredeyse aynı CV performansına sahip olacak (çünkü sahte parametrelerinin ihmal edilebilir olduğunu başarıyla tahmin edersiniz). Verilerdeki rastlantısallık ve CV / bölme prosedürü çoğu zaman gerçek anlamda "en iyi" model yerine bir üst model seçmenize neden olur.

Doğrusal regresyon durumunda daha eski asimptotik teori için bkz. Shao (1993), "Çapraz Doğrulama ile Doğrusal Model Seçimi" . Yang (2007), "Regresyon Prosedürlerini Karşılaştırma İçin Çapraz Doğrulamanın Tutarlılığı" ve Yang (2006), "Sınıflandırma Öğrenme Yöntemlerini Karşılaştırma" , daha genel regresyon ve sınıflandırma problemleri için asimptotik teori verir. Ancak titiz bir sonlu örnek tavsiyesine ulaşmak zordur.

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.