Çapraz doğrulama ile glmnet paketindeki Sapma ölçümünün tam tanımı?


12

Mevcut araştırma için Binom bağımlı bir değişkene R glmnet paketi aracılığıyla Kement yöntemini kullanıyorum.

Glmnet'te optimal lambda çapraz validasyon yoluyla bulunur ve ortaya çıkan modeller çeşitli ölçümlerle karşılaştırılabilir, örneğin yanlış sınıflandırma hatası veya sapma.

Benim sorum: glmnet'te sapma tam olarak nasıl tanımlanır? Nasıl hesaplanır?

(Friedman ve ark.'nın "Koordinat İniş Yoluyla Genelleştirilmiş Doğrusal Modeller İçin Düzenleme Yolları" adlı ilgili makalede sadece cv.glmnet'te kullanılan sapma hakkında bu yorumu buluyorum: "sapma anlamına gelir (eksi soldaki çıkış olasılığının iki katı veri) "(s. 17)).


Kullanılan sapma ile aynı glm(ya da en azından öyle olmalı - farkında olduğum tek bir sapma tanımı var).
Hong Ooi

Evet, ama ilk yazımda alıntı ile gösterildiği gibi bir şekilde uzattığını düşünüyorum. Anladığım gibi sapma, iki modelin performansını karşılaştırabilir, ancak yazarlar çapraz doğrulamanın sol verilerini nasıl içerir? "Eksi bırakılan verilerdeki günlük olasılığının iki katı eksi" nasıl bir anlam ifade ediyor?
Jo Wmann

1
Pekala, teşekkürler, şimdi anladım: Sapma, -2 * log-olasılık veya daha doğrusu (2 * log-olasılık) / (null-modelin log-olasılık) olarak tanımlanmıştır. Bu aynı zamanda, lambda'nın farklı değerleri için sapma ölçümlerinin neden 0,2 aralığını aşmadığını da açıklar. Model, çapraz validasyonun k-1 katları üzerinde tahmin edilir ve kalan katına uygulanır. Kalan kattaki uygulama için log-olasılık-skoru hesaplanır. Bu, k kez tekrarlanır ve yukarıda tanımlanan sapma ölçüsünün her lambdası için k sonuçlarının ortalaması döndürülür.
Jo Wmann

1
Evet, her lambda için tüm kıvrımların ortalaması alınır. Doğrudan sapma veya wrt oranını null modeline göre kullanabileceğinizi düşünüyorum. İki tuzak vardır: a) katlar tam olarak aynı sayıda veri noktasına sahip olmayabilir b) her kat farklı veriler içerir (doğal olarak). düzeltmek için (a) sapmayı seçilen katlamadaki veri noktalarının sayısına bölebilirsiniz. (a) ve (b) 'yi aynı anda sabitlemek için oran yaklaşımını kullanın. sapma modeli, veri setinin her modelde aynı olduğunu varsayar (paydacı göz ardı ettikleri MAP tahminde aynı fikir).
Çağdaş Özgenç

1
Ancak katlar resme girdikten sonra payda katlar arasında aynı değildir. Böylece oran paydaları iptal ederek bunu halleder. Ama kıvrımların ortalamasının ne kadar büyük olduğunu bilmiyorum.
Çağdaş Özgenç

Yanıtlar:


9

Gelen Friedman, Hastie ve Tibshirani (2010) , çapraz doğrulama amacıyla bir binom modeli sapma, şu şekilde hesaplanır:

eksi verilerdeki günlük olasılığının iki katı (s. 17)

Bunun dokümantasyondaglmnet (s. 2 ve 5) belirtilen kağıt olduğu göz önüne alındığında , muhtemelen pakette kullanılan formüldür.

Ve gerçekten, fonksiyonun kaynak kodunda cvlognet, yanıtın sapma kalıntıları şu şekilde hesaplanır:

-2*((y==2)*log(predmat)+(y==1)*log(1-predmat))

predmatbasitçe nerede

predict(glmnet.object,x,lambda=lambda)

ve kodlama cv.glmnetfonksiyonundan aktarılmıştır . JStatSoft sayfasında kullanılabilir kaynak kodunu kağıt için kullandım ve bu kodun ne kadar güncel olduğunu bilmiyorum. Bu paketin kodu şaşırtıcı derecede basit ve okunabilir; yazarak her zaman kendinizi kontrol edebilirsiniz glmnet:::cv.glmnet.


1

@Shadowtalker'ın cevabına ek olarak, glmnet paketini kullanırken, çapraz doğrulamanın sapmasının bir şekilde normalleştiğini hissediyorum.

library(glmnet)
data(BinomialExample)

fit = cv.glmnet(x,y, family = c("binomial"), intercept = FALSE)
head(fit$cvm) # deviance from test samples at lambda value

# >[1] 1.383916 1.359782 1.324954 1.289653 1.255509 1.223706

# deviance from (test samples? all samples?) at lambda value
head(deviance(fit$glmnet.fit))

# >[1] 138.6294 134.5861 131.1912 127.1832 122.8676 119.1637

Referans: sapma R belgesi

çünkü bölünmeyi yaparsam,

head(deviance(fit$glmnet.fit)) / length(y))

sonuç

[1] 1.386294 1.345861 1.311912 1.271832 1.228676 1.191637

hangi çok uygun $ cvm yakındır.

@Hong Ooi'den gelen yorum bu soruya şöyle demiş olabilir:

/programming/43468665/poisson-deviance-glmnet

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.