Cross-Validation

glmnet 包中偏差度量的確切定義,帶有交叉驗證?

  • October 3, 2014

對於我目前的研究,我通過 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)

並從 encolsingcv.glmnet函數傳入。我使用了JStatSoft 頁面上提供的源代碼作為論文,但我不知道該代碼的最新程度。這個包的代碼非常簡單易讀;您可以隨時通過鍵入來檢查自己glmnet:::cv.glmnet

引用自:https://stats.stackexchange.com/questions/117732

comments powered by Disqus