當我們訓練好一模型之后,如何判斷模型的好壞呢,這就需要用到評價指標(evaluation metrics)。下面介紹一下在二分類任務中的一些評價指標。
真實-Positive(正方形左側) | 真實-Negative(正方形右側) | |
---|---|---|
預測-Positive(圓形內) | TP(True Positive) | FP(False Positve) |
預測-Negative(圓形外) | FN(False Negative) | TN(True Negative) |
准確率(accuracy)
准確率的計算公式是:
即類別預測正確的樣本在總樣本數據的占比。
精確率(precision)與召回率(recall)
精確率與召回率往往一起使用的,將兩者結合的指標就是F1-score。
如果提高閥值,精確率會不斷提高,對就上圖理解的話,可以理解成圓形變小並向左移動了。
如果縮小閥值,召回率會不斷提高,對就上圖理解的話,可以理解成圓形變大並向右移動了。
Precision vs Accuracy
precision與accuracy的區別可以這樣理解,如果是在多分類的任務中,accuracy只有一個,就是類別使用正確的樣本數量在總體樣本的占比;而precision在每一個類別上是單獨計算的,如果要合成一個指標只能取各個類別的平均值。
另外一個例子是:假如一個測試集有正樣本1個,負樣本99個。我們設計的模型是個無腦模型,即把所有的樣本都預測為負樣本,那這個模型的accuracy是99%而precision是0%。當然如果正樣本99,負樣本1,全部預測為正樣本,那兩者都是99%。可以看出precision更側重正樣本,而accuracy並無側重。
ROC曲線與AUC
TRP的解釋是,在所有正例中有多少正例被預測對了;
FPR的解釋是,在所有負例中有多少負例被預測錯了;
ROC曲線的計算步驟:
- 對所有測試樣例進行預測
- 將有有樣例按得分從大到小排序
- 從上到下分別取閥值並計算TRP和FPR
- 將所有TRP和FPR點畫到坐標上
如果一條ROC曲線完全包含另一個ROC曲線,則說明前者的性能比后者好;那如果兩條ROC曲線是交叉的該如何比較這兩者呢?比較合理的判斷依據是ROC曲線的面積,即AUC(Area Under ROC Curve)。
AUC的計算方式在這里就不詳述了,在不同的機器學習相關的包都有相應API提供。