Model-Selection

logloss vs gini/auc

  • January 10, 2018

我已經訓練了兩個模型(使用 h2o AutoML 的二元分類器),我想選擇一個來使用。我有以下結果:

model_id        auc     logloss    logloss_train   logloss_valid   gini_train  gini_valid

DL_grid_1   0.542694    0.287469         0.092717        0.211956     0.872932    0.312975
DL_grid_2   0.543685    0.251431         0.082616        0.186196     0.900955    0.312662

auclogloss是交叉驗證指標(交叉驗證只使用訓練數據)。..._train..._valid指標是通過分別通過模型運行訓練和驗證指標來找到的。我想使用logloss_validgini_valid來選擇最佳模型。

模型 1 具有更好的 gini(即更好的 AUC),但模型 2 具有更好的 logloss。我的問題是選擇哪一個,我認為這是一個問題,使用 gini (AUC) 或 logloss 作為決策指標的優點/缺點是什麼。

雖然 AUC 是針對具有不同決策閾值的二元分類計算的,但 logloss 實際上考慮了分類的“確定性”。

因此,據我了解,logloss 在概念上超出了 AUC,並且在數據不平衡或錯誤成本分佈不均的情況下(例如檢測致命疾病)尤其相關。

除了這個非常基本的答案之外,您可能還想看看在二元分類問題中優化 auc 與 logloss

一個簡單的 logloss 計算示例和基本概念在這個最近的問題中討論 Log Loss function in scikit-learn return different values

另外在stackoverflow中做了一個非常好的點

必須了解 AUC ROC 與準確度/精度等“逐點”指標之間的關鍵區別。ROC 是閾值的函數。給定一個輸出屬於每個類的概率的模型(分類器),我們通常將元素分類到支持度最高的類。但是,有時我們可以通過更改此規則並要求一個支持比另一個大 2 倍才能實際歸類為給定類來獲得更好的分數。對於不平衡的數據集,這通常是正確的。通過這種方式,您實際上是在修改類的學習先驗以更好地擬合您的數據。ROC 著眼於“如果我將這個閾值更改為所有可能的值會發生什麼”,然後 AUC ROC 計算這樣一條曲線的積分。

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

comments powered by Disqus