Cross-Validation

交叉驗證泊松模型的錯誤度量

  • October 2, 2013

我正在交叉驗證一個試圖預測計數的模型。如果這是一個二元分類問題,我會計算非折疊 AUC,如果這是一個回歸問題,我會計算非折疊 RMSE 或 MAE。

對於泊松模型,我可以使用哪些錯誤度量來評估樣本外預測的“準確性”?是否有 AUC 的泊松擴展來查看預測對實際值的排序情況?

似乎很多 Kaggle 計數競賽(例如,yelp 評論將獲得的有用票數,或患者在醫院度過的天數)使用均方根誤差或 RMLSE。


/編輯:我一直在做的一件事是計算預測值的十分位數,然後查看按十分位數分類的實際計數。如果十分位數 1 低,十分位數 10 高,並且兩者之間的十分位數嚴格增加,我一直稱該模型“好”,但我在量化這個過程時遇到了麻煩,我確信有更好的方法。

/Edit 2:我正在尋找一個公式,它採用預測值和實際值並返回一些“錯誤”或“準確性”指標。我的計劃是在交叉驗證期間根據折疊數據計算這個函數,然後用它來比較各種模型(例如泊松回歸、隨機森林和GBM)。

例如,一個這樣的功能是RMSE = sqrt(mean((predicted-actual)^2))。另一個這樣的函數是AUC。這兩個函數似乎都不適合泊松數據。

您可以使用一些正確且嚴格正確的計數數據評分規則。計分規則是懲罰介紹了是預測分佈和觀測值。它們具有許多理想的特性,首先是更接近真實概率的預測總是會受到更少的懲罰,並且存在(唯一的)最佳預測,並且當預測概率與真實概率重合時。從而最小化期望意味著報告真實的概率。另見維基百科

通常將所有預測值的平均值作為

採用哪條規則取決於你的目標,但我會給出一個粗略的描述,當每個規則都可以使用時。

在接下來的內容中,我使用對於預測概率質量函數和預測累積分佈函數。一個運行計數分佈的整個支持(即,)。表示指示函數。和是預測分佈的均值和標準差(通常是計數數據模型中直接估計的數量)。

嚴格的評分規則

  • 布賴爾分數:(對於分類預測變量的大小不平衡是穩定的)
  • Dawid-Sebastiani 評分:(適用於一般預測模型選擇;對於分類預測變量的大小不平衡穩定)
  • 偏差分數:(是一個歸一化項,僅取決於,在泊松模型中,它通常被視為飽和偏差;適合與來自 ML 框架的估計一起使用)
  • 對數分數:(很容易計算;對於分類預測變量的大小不平衡是穩定的)
  • 排名概率得分:(有利於對比非常高計數的不同預測;容易受到分類預測變量大小不平衡的影響)
  • 球面得分:(對於分類預測變量的大小不平衡是穩定的)

其他評分規則(不太合適但經常使用)

  • 絕對錯誤分數:(不恰當)
  • 平方誤差分數:(不完全正確;易受異常值的影響;易受分類預測變量大小不平衡的影響)
  • Pearson 歸一化平方誤差分數:(不是嚴格正確的;容易受到異常值的影響;可用於檢查模型是否檢查平均分數是否與 1 非常不同;對於分類預測變量的大小不平衡是穩定的)

嚴格正確規則的示例 R 代碼:

library(vcdExtra)
m1 <- glm(Freq ~ mental, family=poisson, data=Mental) 

# scores for the first observation
mu <- predict(m1, type="response")[1]
x  <- Mental$Freq[1]

# logarithmic (equivalent to deviance score up to a constant) 
-log(dpois(x, lambda=mu))

# quadratic (brier)
-2*dpois(x,lambda=mu) + sapply(mu, function(x){ sum(dpois(1:1000,lambda=x)^2) })

# spherical
- dpois(x,mu) / sqrt(sapply(mu, function(x){ sum(dpois(1:1000,lambda=x)^2) }))

# ranked probability score
sum(ppois((-1):(x-1), mu)^2) + sum((ppois(x:10000,mu)-1)^2)

# Dawid Sebastiani
(x-mu)^2/mu + log(mu)

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

comments powered by Disqus