Cross-Validation
glmnet 包中偏差度量的確切定義,帶有交叉驗證?
對於我目前的研究,我通過 R 中的 glmnet 包對二項式因變量使用 Lasso 方法。
在 glmnet 中,通過交叉驗證找到最佳 lambda,並且可以將生成的模型與各種度量進行比較,例如錯誤分類錯誤或偏差。
我的問題:glmnet 中的偏差究竟是如何定義的?它是如何計算的?
(在弗里德曼等人的相應論文“通過坐標下降的廣義線性模型的正則化路徑”中。我只發現關於 cv.glmnet 中使用的偏差的評論:“平均偏差(減去左側的對數似然的兩倍)數據)”(第 17 頁))。
在Friedman、Hastie 和 Tibshirani (2010)中,出於交叉驗證的目的,二項式模型的偏差計算為
減去遺漏數據的對數似然的兩倍(第 17 頁)
鑑於這是(第 2 頁和第 5 頁)文檔中引用的論文,這可能是包中使用的公式。
glmnet
實際上,在函數的源代碼中
cvlognet
,響應的偏差殘差計算為-2*((y==2)*log(predmat)+(y==1)*log(1-predmat))
predmat
簡單的在哪裡predict(glmnet.object,x,lambda=lambda)
並從 encolsing
cv.glmnet
函數傳入。我使用了JStatSoft 頁面上提供的源代碼作為論文,但我不知道該代碼的最新程度。這個包的代碼非常簡單易讀;您可以隨時通過鍵入來檢查自己glmnet:::cv.glmnet
。