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ı?
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:
0.632 tahmincisine ulaşacağım, ancak biraz daha uzun bir gelişme olacak:
F işlevini kullanarak 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}
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 .
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?).
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.
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.
Ç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ğundan
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 .
Burada , göreceli fazla takma oranını ölçer. Eğer fazla yoksa (R = 0, ) olduğunda bu .632 tahmincisine eşittir.
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.
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 .
Sonra:
ve
ve bu doğrudur (sezgisel olarak, değiştirmeyle , olasılıklar bağlı değildir )
Böylece
Yaklaşımın kalitesini ( bağlıdır ) deneysel olarak kontrol etmek için bu küçük simülasyonu da taşıyabilirsiniz :
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.
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.
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)