R

glmnet 包中的“多項式偏差”是什麼?

  • December 13, 2015

我正在使用 R 中的 glmnet 包擬合多項邏輯回歸:

library(glmnet)
data(MultinomialExample)
cvfit=cv.glmnet(x, y, family="multinomial", type.multinomial = "grouped")
plot(cvfit)

rplot

什麼是“多項式偏差”,它與“多項式對數損失”有何關係?

偏差是似然比的特定變換。特別是,我們在完成一些擬合後考慮基於模型的似然性,並將其與所謂的飽和模型的似然性進行比較。後者是一個具有與數據點一樣多的參數並實現完美擬合的模型,因此通過查看似然比,我們在某種意義上測量了我們的擬合模型與“完美”模型的差距。

在多項回歸案例中,我們有以下形式的數據在哪裡是一個-vector 指示哪個類觀察屬於(恰好一個條目包含一個,其餘的為零)。現在,如果我們擬合一些估計概率向量的模型那麼基於模型的似然可以寫成

另一方面,飽和模型將概率分配給每個發生的事件,這意味著概率向量等於對於每個我們可以將這些可能性的比率寫為

為了找到偏差,我們減去這個量的對數的兩倍(這個變換在數理統計中很重要,因為與分佈)得到

(還值得指出的是,在這種情況下,我們將任何事物的對數的 0 倍視為 0。原因是它與飽和似然應該等於 1 的想法是一致的。)

唯一獨特的部分glmnet是函數的方式估計。它正在對可能性進行有約束的最大化,並將偏差計算為上界是多種多樣的,在測試數據上實現最小偏差的模型被認為是“最佳”模型。

關於對數損失的問題,我們可以通過只保留非零項來簡化上面的多項式偏差並將其寫為, 在哪裡是用於觀察的被觀察類的索引,這只是經驗對數損失乘以一個常數。所以最小化偏差實際上等同於最小化對數損失。

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

comments powered by Disqus