Önyükleme işleminde .632+ kuralı nedir?


107

Burada @gung, .632+ kuralına referansta bulunur. Hızlı bir Google araması, bu kuralın ne anlama geldiği ve ne amaçla kullanıldığı konusunda anlaşılması kolay bir cevap vermez. Birisi lütfen .632+ kuralını açıklar mı?

Yanıtlar:


115

0.632 tahmincisine ulaşacağım, ancak biraz daha uzun bir gelişme olacak:

F işlevini kullanarak Y ile X'i tahmin etmek istediğimizi varsayalım ; burada f , veriler kullanılarak tahmin edilen bazı parametrelere bağlı olabilir (\ mathbf {Y}, \ mathbf {X}) , örneğin, f (\ mathbf {X}) = \ mathbf {X} \ mathbf {\ p}Xff(Y,X)f(X)=Xβ

Nadir bir tahmin hatası tahmini, burada bir kayıp fonksiyonu, örneğin kare hata kaybı). Buna genellikle eğitim hatası denir. Efron ve diğ. görünür hata oranı veya yeniden yerleştirme oranı olarak adlandırır. Bizim veri kullandıkları için çok iyi değil sığacak şekilde . Bu, in aşağıya doğru eğimli olmasına yol açar. modelinizin yeni değerleri öngörmede ne kadar iyi olduğunu bilmek istersiniz .

err¯=1Ni=1NL(yi,f(xi))
L(xi,yi)ferr¯f

Genellikle çapraz onaylamayı beklenen ekstra örnek tahmin hatasını tahmin etmenin basit bir yolu olarak kullanırız (modelimiz eğitim setimizde olmayan veriler üzerinde ne kadar iyi çalışıyor?).

Err=E[L(Y,f(X))]

Bunu yapmanın popüler bir yolu, -katlama çapraz doğrulama yapmaktır . Verilerinizi gruplarına bölün (örneğin 10). Her grup için kalan üzerinde modelinizi sığacak grup ve test edin grubuna inci. Çapraz onaylanmış ekstra örnek tahmin yalnızca burada gözlem bölümü göstermektedir bir göstergesi fonksiyonudur tahsis edilir ve tahmin edilen değer değil kullanarak veri grubu inci.KKkK1k

ErrCV=1Ni=1NL(yi,fκ(i)(xi))
κifκ(i)(xi)xiκ(i)

Bu tahmin edici, olduğunda ve büyük varyansa sahip olduğunda gerçek tahmin hatası için yaklaşık olarak tarafsızdır ve daha büyük için hesaplamalı olarak pahalıdır . Öyleyse bir kez daha oyundaki önyargı değişimini görüyoruz.K=NK

Çapraz doğrulama yerine, ekstra-örnek tahmin hatasını tahmin etmek için bootstrap'i kullanabiliriz. Bootstrap yeniden örnekleme, herhangi bir istatistiğin örnekleme dağılımını tahmin etmek için kullanılabilir. Eğer eğitim verilerimiz , o zaman bu setten örnekleri almayı düşünebiliriz (yerine) burada her bir örnek kümesidir . Şimdi, ekstra örnek tahmin hatasını tahmin etmek için önyükleme örneklerimizi kullanabiliriz: tahmin edilen değer için model uygunluğundanX=(x1,,xN)BZ1,,ZBZiN

Errboot=1Bb=1B1Ni=1NL(yi,fb(xi))
fb(xi)xib önyükleme veri kümesi. Önyükleme örnekleri üretmek için kullanılan Ne yazık ki, bu özellikle iyi bir tahmin değildir içermiş olan . Biri dışarıda tahmincisi, çapraz doğrulama işlemini taklit ederek bir iyileştirme sunar ve burada , bootstrap örnekleri için indeks kümesidir. gözlem içermez vebu tür örneklerin sayısıdır. fb(xi)xi
Errboot(1)=1Ni=1N1|Ci|bCiL(yi,fb(xi))
Cii|Ci|Errboot(1)aşırı yüklenme problemini çözer, ancak hala önyargılıdır (bu bir önyargılıdır). Önyargı, değiştirme örneklemesinden kaynaklanan önyükleme örneklerinde belirgin olmayan gözlemlerden kaynaklanıyor. Her numunede farklı gözlemlerin ortalama sayısı yaklaşık (neden bir açıklama için bu cevaba bakınız gözlemlerin kabaca üçte ikisini ihtiva ortalama her önyükleme numuneyi yapar Neden? ). Eğilim problemi çözmek için, Efron ve Tibshirani 0.632 kestirimcisi önerilen: burada0.632N
Err.632=0.368err¯+0.632Errboot(1)
err¯=1Ni=1NL(yi,f(xi))
genellikle eğitim hatası olarak adlandırılan tahmin hatasının kesin tahminidir. Buradaki düşünce, aşağı doğru eğilimli bir tahmin ve yukarı doğru eğilimli bir tahminin ortalamasıdır.

Bununla birlikte, oldukça fazla bir tahmin kestirim fonksiyonuna sahipsek (yani ), .632 tahmincisi bile aşağı doğru eğilimli olacaktır. .632+ tahmincisi, ve arasında daha az taraflı bir uzlaşma olarak tasarlanmıştır . ile burada , tahmin modelini tüm olası kombinasyonlar üzerinde değerlendirerek tahmin edilen hata oranıdır. ve belirleyicisini hedefler .err¯=0err¯Errboot(1)

Err.632+=(1w)err¯+wErrboot(1)
w=0.63210.368RandR=Errboot(1)err¯γerr¯
γyixi

γ=1N2i=1Nj=1NL(yi,f(xj))
.

Burada , göreceli fazla takma oranını ölçer. Eğer fazla yoksa (R = 0, ) olduğunda bu .632 tahmincisine eşittir.RErrboot(1)=err¯


2
Bunlar iyi sorular, @rpierce, ama bu konunun ana başlığından biraz uzaklaşıyorlar. Özgeçmiş organizasyonu bazında, yeni bir konuya girmeleri daha iyi olur, böylece insanların daha sonra bu bilgileri bulması ve kullanması daha kolay olur.
gung



1
@rpierce Sorumu takip etmem biraz zorlaştıysa özür dilerim. , modelinizin uyumu ile uydurmak için kullanılan verileri karşılaştırıyor. Dolayısıyla, kare hatası için sadeceerr¯=1Ni=1NL(yi,f(xi))1ni=1n(yiy^i)2
olurdu

1
@ rpierce, evet! Biraz genel davranıyordum çünkü bu malzemenin bir çoğunu bazı ders notlarından geri alıyordum.
bdeonoviç

53

Bu 1 makalenin 3. bölümünde daha fazla bilgi bulacaksınız . Ancak, özetlemek gerekirse, rasgele çizilen ve değiştirilen, den bir sayı örneği olarak çağırırsanız , ortalama olarak yaklaşık benzersiz elemanlar.Sn{1:n}S(1e1)n0.63212056n

Akıl yürütme aşağıdaki gibidir. Biz doldurmak örnekleme ile den kez (rastgele ve değiştirme ile) . Belirli bir dizini düşünün . S={s1,,sn}i=1,,n{1:n}m{1:n}

Sonra:

P(si=m)=1/n

ve

P(sim)=11/n

ve bu doğrudur (sezgisel olarak, değiştirmeyle , olasılıklar bağlı değildir )1ini

Böylece

P(mS)=1P(mS)=1P(i=1nsim)=1i=1nP(sim)=1(11/n)n1e1

Yaklaşımın kalitesini ( bağlıdır ) deneysel olarak kontrol etmek için bu küçük simülasyonu da taşıyabilirsiniz :n

n <- 100
fx01 <- function(ll,n){
    a1 <- sample(1:n, n, replace=TRUE)
    length(unique(a1))/n
}
b1 <- c(lapply(1:1000,fx01,n=100), recursive=TRUE)
mean(b1)

1. Bradley Efron ve Robert Tibshirani (1997). Çapraz Doğrulamadaki İyileştirmeler: .632+ Bootstrap Yöntemi . Amerikan İstatistik Derneği Dergisi , Vol. 92, No. 438, sayfa 548-560.


3
burada sizin için referansta bir belge var - stat.washington.edu/courses/stat527/s14/readings/…

1
(+1) Çok iyi. Gösterimi sadece biraz daha standart hale getirirdim. Veriler: . IID rasgele değişkenleri , . Sonuç: . (x1,,xn)S1,,SnP(Si=k)=1nI{1,,n}(k)P(i=1n{Si=k})=1P(i=1n{Sik})=1i=1nP{Sik}=1(11/n)n11/e63.21%
Zen,

4
@ rpierce: Doğru. Cevabın şu anda "açık" bit, . 1e10.63212056
Ilmari Karonen

1
Bu cevap da harika, aslında, kabul edilen cevap artı bu cevap aslında sorumun tam cevabını veriyor - ama ikisi de Benjamin'in bir cevapta aradığım şeye daha yakın olduğunu hissediyorum. Olduğu söyleniyor - Gerçekten her ikisini de kabul etmenin mümkün olmasını diliyorum.
russellpierce

1
@ rpierce: Celine Dion'dan alıntı yapmak için: " Kafiye / Güzellik ve canavar gibi eski zaman / şarkı kadar eskiydi." : P
Nick Stauner

8

Tecrübelerime göre, esasen simülasyonlara dayanarak, 0.632 ve 0.632+ önyükleme varyantlarına yalnızca, doğru olmayan bir puanlama kuralının, yani "doğru bir şekilde sınıflandırılmış" oranının kullanılmasından kaynaklanan ciddi sorunlar nedeniyle ihtiyaç duyuldu. Uygun (örneğin, sapma temelli veya Brier puanı) veya yarı doğru (örneğin, -index = AUROC) puanlama kuralları kullandığınızda, standart Efron-Gong iyimserlik önyüklemesi gayet iyi çalışır.c


3
Burada söylediğin şeylerin çoğunu anladığımı sanmıyorum Frank. Aydınlatmaya hazır mısın? Katkıda bulunmak için benzersiz ve önemli bir şeyiniz var gibi görünüyor.
russellpierce

Belirli bir soruyu belirtebilirsiniz eğer genişletmek için sevindim.
Frank Harrell

1
Bu puanlama kuralları ... bootstrap sonucunun kalitesini değerlendiriyordu. Doğru puanlama kuralının "sınıflandırılmış" oranını tanımlayan bir bağlantı verebilir misiniz, ne tür bir canavar olabileceğini hayal etmekte zorlanıyorum. Google'da "Efron-Gong iyimserliği" için en iyi sonuçların büyük çoğunluğu sizin tarafınızdan yayınlanmış gibi görünüyor ... elemeler olmadan "açılış patlaması" dersemden ne farkı var? Hangi Effron ve Gong makalesine bakmalıyım? Birkaç var gibi görünüyor.
russellpierce

3
Doğru sınıflandırılan oranı kullanan ve tanımlayan yaklaşık 0.632 sayılı orijinal yazıya bakınız (Efron & Tibshirani JASA 92: 548; 1997). İyimserlik önyükleme önyargıyı tahmin etmek için önyükleme biçiminin bir çeşididir. Gong: JASA 85:20; 1990.
Frank Harrell

2

Bu cevaplar çok faydalıdır. Matematikle göstermenin bir yolunu bulamadım, bu yüzden oldukça iyi çalışan bazı Python kodları yazdım:

    from numpy import mean
    from numpy.random import choice

    N = 3000

    variables = range(N)

    num_loop = 1000
    # Proportion of remaining variables
    p_var = []

    for i in range(num_loop):
        set_var = set(choice(variables, N))
        p=len(set_var)/float(N)
        if i%50==0:
            print "value for ", i, " iteration ", "p = ",p
        p_var.append(p)

    print "Estimator of the proportion of remaining variables, ", mean(p_var)
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.