K-kat çapraz doğrulamada varyans tahminleri


27

K-katlama çapraz doğrulama, verilen bir sınıflandırıcının genelleme kapasitesini tahmin etmek için kullanılabilir. Ayrıca varyansı hakkında daha iyi bir tahminde bulunmak için tüm doğrulama işlemlerinden havuzlanmış bir varyansı hesaplayabilir miyim?

Değilse neden?

Çapraz doğrulama işlemlerinde havuzlanmış standart sapmayı kullanan kağıtlar buldum . Açıkça , validasyon varyansı için evrensel bir tahmin edici olmadığını belirten kağıtlar da buldum . Ancak, genelleme hatası için bazı varyans tahmin edicileri gösteren kağıtlar da buldum (hala bunu okuyup anlamaya çalışıyorum). İnsanlar pratikte gerçekte ne yaparlar (veya raporlar)?

DÜZENLEME: Ham sınıflandırma hatasını ölçmek için CV kullanıldığında (örneğin, bir örnek doğru bir şekilde etiketlenmişse veya doğru değilse veya yanlışsa), o zaman bir havuzlanmış varyanstan bahsetmek mantıklı gelmeyebilir. Ancak, tahmin ettiğimiz istatistiğin tanımlanmış bir varyansa sahip olduğu durumdan bahsediyorum. Dolayısıyla, belirli bir kat için, hem istatistik için bir değer hem de bir varyans tahmini ile sonuçlanabiliriz. Bu bilgiyi atmak ve sadece ortalama istatistiği dikkate almak doğru görünmüyor. Ve farkında olduğum halde bootstrap yöntemlerini kullanarak bir varyans tahmini yapabilirim (eğer çok yanlış değilsem) bunu yapmak hala kat varyanslarını göz ardı eder ve yalnızca istatistiksel tahminleri dikkate alır (artı daha fazla hesaplama gücü gerektirir).


Varyansı, birbirlerinden büyük ölçüde farklı olup olmadıklarını görmenin iki olası yolu göz önüne alarak hesapladınız mı?
zeferino,

Evet yaptım. Bazı deneylerde, eğitim örnekleri için varyans ve havuzlanmış varyans arasında yaklaşık bir büyüklük sırası değişikliği vardı. Doğrulama örnekleri için fazla bir fark yoktu. Daha büyük değişiklikler daha az doğru modellerle ilişkili görünüyordu.
Cesar,

1
@ Sezar: güzel gözlem: Modelleriniz çok dengesiz (yinelemeler arasında yüksek varyans). Sınıflandırmada (sınıflandırıcı tahmin etmekten daha kötü değilse), kararsız tahminler yanlış tahminlere yol açacaktır. Bunun açıklayıcı bir düşüncesi, doğru bir tahminden sapmanın her zaman "yanlış" yönünde olacağı, çok düşük bir değerle iptal edecek çok yüksek olmamasıdır.
cbeleites, Monica,

1
@cbeleites: Büyük varyans değişiklikleri çoğunlukla daha yüksek hata oranlarına sahip modeller ile gerçekleştiğinden, bu beklenenden biraz daha olmaz mı? Bu arada, cevabınızla ilgili güzel güncelleme. Hala daha dikkatli okumak zorundayım ama çok minnettarım. Teşekkürler.
Cesar

1
@ Sezar: Thx. Beklendiği gibi, oranlar için varyans formülü olduğunu belirtmek için daha az açıklayıcı bir yol (cevabımı görün): gerçek hata oranı ne kadar yüksek olursa, fark ne kadar düşükse, maksimum varyans hata oranı =% 50'dir.
cbeleites, Monica

Yanıtlar:


13

Çok ilginç bir soru, verdiğiniz makaleleri okumak zorunda kalacağım ... Ama belki bu bize cevap yönünde başlayacaktır:

Genelde bu problemi pragmatik bir şekilde ele alırım: Yeni rasgele bölmelerle k-fold cross validasyonunu yineliyorum ve her yineleme için olduğu gibi performansı hesaplıyorum. Genel test örnekleri daha sonra her yineleme için aynıdır ve farklılıklar verinin farklı bölümlerinden gelir.

Bu, örneğin gözlemlenen performansın% 5 ila 95'inin yüzdesi olarak bildirir. kadar değiş tokuş yeni örnekler için örnek ve model kararsızlığı için bir ölçü olarak tartışın.nk1

Not: Yine de örneklem büyüklüğüne ihtiyaç duyan formülleri kullanamıyorum. Verilerim kümelenmiş veya hiyerarşik olduğundan yapı (aynı vakanın benzer fakat tekrarlanan ölçümleri, genellikle aynı numunenin birkaç [yüz] farklı konumu) Etkili örneklem büyüklüğünü bilmiyorum.

bootstrapping ile karşılaştırılması:

  • yinelemeler yeni rasgele bölmeler kullanır.

  • temel fark (bootstrap) veya (cv) değişim olmadan yeniden örneklemedir.

  • Hesaplama maliyeti yaklaşık olarak aynıdır, çünkü cv önyükleme iterasyonlarının / k'lık yinelemelerinin sayısını seçmezdim, yani aynı toplam model sayısını hesaplar.

  • bootstrap, bazı istatistiksel özellikler açısından cv'ye göre avantajlara sahiptir (asimptotik olarak doğru, muhtemelen iyi bir tahmin elde etmek için daha az yinelemeye ihtiyacınız var)

  • Ancak, cv ile size garanti edilme avantajına sahip olursunuz.

    • Farklı eğitim örneklerinin sayısı tüm modeller için aynıdır (öğrenme eğrilerini hesaplamak istiyorsanız önemlidir)
    • her örnek, her tekrarda tam olarak bir kez test edilir
  • bazı sınıflandırma yöntemleri tekrarlanan örnekleri atar, bu nedenle önyükleme işlemi bir anlam ifade etmez

Performans için varyans

Kısa cevap: evet, yalnızca {0,1} sonuçların mevcut olduğu durumlarda farklılıktan bahsetmek mantıklıdır.

Binom dağılımına bir göz atın (k = başarı, n = test, p = başarı için gerçek olasılık = ortalama k / n):

σ2(k)=np(1p)

Oranların varyansı (örneğin isabet oranı, hata oranı, hassasiyet, TPR, ..., bundan sonra kullanacağım ve bir testte gözlenen değer için kullanacağım ) tüm kitapları dolduran bir konudur. .ppp^

  • Fleiss: Oranlar ve Oranlar İçin İstatistiksel Yöntemler
  • Forthofer ve Lee: Biyoistatistik güzel bir giriş yaptı.

Şimdi, ve dolayısıyla:p^=kn

σ2(p^)=p(1p)n

Bu, sınıflandırıcı performansını ölçme konusundaki belirsizliğin yalnızca test edilen modelin gerçek performansına ve test örneklerinin sayısına bağlı olduğu anlamına gelir.

Çapraz doğrulama işleminde,

  1. k "vekil" modellerinin genellikle tüm örneklerden oluşturduğunuz "gerçek" modelle aynı gerçek performansa sahip olduğunu. (Bu varsayımın bozulması iyi bilinen karamsar önyargıdır).

  2. k "vekil" modellerinin aynı gerçek performansa sahip olması (eşdeğerdir, sabit tahminler vardır), bu nedenle k testlerinin sonuçlarını toplamanıza izin verilir.
    Elbette o zaman sadece bir cv yinelemesinin k "vekil" modelleri havuzlanabilir, ancak k-kat cv yinelemelerinin ki modelleri.

Neden yinele?

Yinelemelerin size söylediği en önemli şey, model (tahmin) dengesizliğidir, yani aynı örnek için farklı modellerin tahminlerinin değişmesidir.

Tahminin doğru olup olmadığına bakılmaksızın, belirli bir test senaryosunun tahminindeki değişkenlik olarak kararsızlığı doğrudan veya farklı cv yinelemeler için varyansı olarak biraz daha dolaylı olarak rapor edebilirsiniz .p^

Ve evet, bu önemli bir bilgidir.

Şimdi, eğer modelleriniz tamamen kararlıysa, tüm veya belirli bir örnek için tam olarak aynı tahminde bulunacaktır. Başka bir deyişle, tüm tekrarlamalar aynı sonuca sahip olacaktır. Tahminin varyansı yineleme tarafından azaltılmayacaktır ( ). Bu durumda, yukarıdaki 2 varsayımı yerine getirilir ve yalnızca ye tabi tutulur ve n, tüm test edilen toplam numune sayısıdır. cv'nin kıvrımları. Bu durumda, yinelemelere gerek yoktur (istikrarı göstermek dışında).nbootstrapkniter. cvn1nσ2(p^)=p(1p)n

Daha sonra gerçek performans için güven aralıklarını oluşturabilirsiniz başarıları hiçbir gözlenen gelen içinde testlerinin. Bu yüzden, kesinlikle, ve bildirildiğinde varyans belirsizliğini bildirmeye gerek yoktur . Ancak, benim alanımda, pek çok insan bunun farkında değil ya da belirsizliğin ne kadar büyük olduğuna dair belirsizliğin ne kadar büyük olduğu konusunda sezgisel bir tutuma sahip. Bu yüzden yine de bildirmenizi tavsiye ederim.pknp^n

Model kararsızlığını gözlemlerseniz, havuzlanmış ortalama, gerçek performans için daha iyi bir tahmindir. Yinelemeler arasındaki varyasyon önemli bir bilgidir ve bunu tüm yinelemelere göre gerçek performans ortalama performansına sahip bir boyut nolu test için beklenen minimum varyansla karşılaştırabilirsiniz.


Bootstrap'taki gibi yeni rasgele bölmelerle, değiştirmeyle yineliyor musunuz? Veya k-kat çapraz onaylamayı birkaç kez tekrarlıyor musunuz? Bu ilginç, çünkü önyükleme gibi görünmüyor ancak böyle çalışabilir. Fakat kaç tane çoğaltma yapıyorsunuz? Bu kolayca çok pahalıya mal olabilir.
Cesar,

@Cesar: bootstrap'a çok benziyor, genişletilmiş cevabı gör.
cbeleites, Monica,

CV her model için "aynı sayıda farklı eğitim örneği" nden nasıl çıkar? CV'yi "kopya veri kümeleri" farklı bir gözlem birleşimi olduğu için takip etmiyorum - aynı sayıda farklı gözlemi nasıl sağlayabilirler? Belki de her bir kaydın orijinal eğitim setinde farklı olduğunu varsayıyorsunuzdur?
olasılık

@probabilityislogic: CV kopya veri setleri orijinal veri setinden daha küçüktür. Böylece, bu gibi farklı kopyalar, değiştirilmeden yeniden örneklemeyle bile üretilebilir. Değişim ile yeniden örnekleme aynı kaydı birkaç kez çizebilirsiniz. Böylece, benzersiz kayıtların sayısı değişebilir. Evet, orijinal kayıtların farklı olduğunu varsayıyorum. Birçok uygulama için çok önemli olan istatistiksel bağımsızlığı korumak için, yeniden örnekleme veri hiyerarşisinde en üst düzeyde yapılmalıdır. (Örneğin, her hasta için yüzlerce satırla hasta verileriyle çalışıyorum => hastaları yeniden
örnekle.

1
n

1

CV'nin yalnızca bir tahmin olduğunu ve asla 'gerçek' genelleme hatasını temsil edemediğini unutmayın. Örnek büyüklüğünüze bağlı olarak (katlanma sayınızı veya kat büyüklüğünüzü etkileyecektir), genelleme hatasının dağılımının herhangi bir parametre tahminini hesaplama kabiliyetinizde ciddi bir şekilde sınırlandırılmış olabilirsiniz. Kanımca (ve çeşitli ders kitaplarında, 'Destek Vektör Makineleri ile Bilgi Keşfi'-Lutz Hamel) öne sürdüğümü gördüm) genelleme hatasının dağılımını tahmin etmek için CV'nin önyükleme varyantını yapabilirsiniz, ancak standart 10 1 (örneğin) bir kez kapalı CV size gerçek gen hatasıyla ilgili çıkarımlar yapmak için yeterli veri noktası sağlamaz. Önyükleme, etkili bir şekilde çoklu (1000 ya da öylesine) 10-1 (ya da her neyse) CV testlerini yaparak eğitim / test / valinizden aldığınız numuneleri almanızı gerektirir. Daha sonra, her CV testi için ortalamaların dağılım dağılımını CV hataları popülasyonu için ortalamanın örnekleme dağılımının bir tahmini olarak alırsınız ve bundan, dağılım parametrelerini, yani ortalama, medyan, std min max Q1 Q3 vb. Tahmin edebilirsiniz ... Bu biraz çalışma ve bence, yalnızca uygulamanızın fazladan işi garanti altına almak için yeterince önemli / riskli olması durumunda gerekli. yani, belki de işletmenin sadece rastgele olmaktan daha iyi olduğu için mutlu olduğu, belki de gerekmediği bir pazarlama ortamında. AMA yüksek riskli ilaçlara karşı hasta tepkilerini değerlendirmeye çalışıyorsanız ya da büyük yatırımlar için gelir beklentilerini öngörüyorsanız, bunu uygulamakta dikkatli olabilirsiniz.


Bu bir tahmindir, ancak bir istatistiğin neredeyse herhangi bir kullanımı hakkında da söylenebilir. Bununla birlikte, her katlamanın hali hazırda bir varyans tahmini vardır, bu bilgiyi atmak doğru görünmüyor. Soruyu açıklamalarla güncelledim.
Cesar

Belki de anlamıyorum. Tek bir katlamanın varyansı üzerinde neden acı çektiğini gerçekten anlamıyorum?
clancy,

Tek bir 10 katlı CV çalıştırmak, mücadele etmeye çalıştığım sorun için tam olarak ucuz değil. Haklısın varyansı önyüklemede olduğu gibi yenisiyle değiştirilmiş birden fazla örnek alarak tahmin edebiliyorum. Fakat çok sayıda CV almak, hatta birkaç yüz bile, benim durumumda çok pratik olmayabilir. Bireysel kat varyansı tahminlerini birleştirmenin bir yolunu (varsa), böylece en azından gereken önyükleme örneklerinin sayısını azaltabilirim. Ve ayrıca, merak.
Cesar

Ah tamam. Belki de daha sonra genel olarak kat ortalamadan sapma elde örnekleme dağılımının rastgele seçilen değişken olacaktır 10 kat vasıtasıyla ... her varyansı (Bence bir düzeyi kare dist veya F damıtılmış olan)
Clancy

@clancy: 10-1 ile n = 10 örnek için bir bırak-bir-cv demek istiyorsun? Dışarıda bırakma yinelemelerinin bir anlam ifade etmediğini unutmayın.
cbeleites, Monica,
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.