機器學習在不同的業務需求下,需要使用不同的評估指標對演算法效果進行評估,這篇文章將對常見的評估指標進行總結。
Todo list:
-
[ ] 分類任務
- [x] Accuracy
- [ ] Precision
- [ ] Recall
- [ ] F1 Score
- [ ] Roc curve
- [ ] PR curve
- [ ] AUC
-
[ ] 迴歸任務
- [ ] MAE
- [ ] MSE
<div class=”note info”><p>由於翻譯問題,Accuracy
(準確率),Precision
(精確率,查準率),Recall
(召回率,查全率)中文表述會存在歧義,因此下文均用英文表述。</p></div>
評估指標根據任務型別不同主要分為兩類:
-
分類任務評估指標
- Accuracy
- Precision
- Recall
- F1 Score
- Roc curve
- PR curve
- AUC
-
迴歸任務評價指標
- MAE (Mean Absolute Error,絕對平均誤差)
- MSE (Mean Squared Error,均方誤差)
混淆矩陣
提到評價方法首先我們先引入混淆矩陣(Confusion Matrix)
的概念,因為接下來的分類任務的評價指標Accuracy
,precision
,recall
,F1 score
都可以用混淆舉中的元素表示。
混淆矩陣是用來反映某一個分類模型的分類結果的,其中行代表的是真實的類,列代表的是模型的分類,如下表:
分類任務評價指標
Accuracy
Accuracy
是評價指標裡最易懂,最直觀的一個。它的定義如下:
$$ Accuracy= frac{分類正確的樣本數}{總樣本數} $$
用混淆矩陣表示就是:
$$ Accuracy= frac{TP+TN}{TP+TN+FP+FN} $$
即Accuracy表示分類器正確分類的樣本數與總樣本數之比。
注意不均衡資料會對Accuracy
產生極大影響。例如在做債務人逾期率預測任務時,逾期(即未在指定日期還款)的概率相對較低,在此我們假設100人裡有一人逾期,如果分類器簡單的把所有人都標記為非逾期(未進行預測),那麼這個任務的Accuray將會是99%,99%的準確率看起來很高,然而並未反應分類器的好壞(分類器只是簡單地標記所有樣本為非逾期)。
Precision 和 Recall
先從混淆矩陣定義來看Precision
和Recall
的定義:
$$ Presion= frac{TP}{TP+FP} $$
$$ Recall= frac{TP}{TP+FN} $$
TP表示預測為正例中真正的正樣本數,TP+FP表示預測為正的所有樣本數,所以Precision
表示的是預測為正例的樣本中有多少是真正的正例。
同理TP+FN表示樣本中正例的總數,所以Recall
表示的是樣本中的正例被準確預測的比例。
Precision
和Recall
有著自己的側重點,在不同的業務需求下重要性也不同。下面舉例說明:
推薦演算法中,往往會給使用者推薦較多的候補項,這時候我們希望我們推薦的候補項中儘可能多的是使用者感興趣的內容,這種情況我們希望Precision
儘可能的大。
地震預測任務中,我們寧願誤報也不願意錯過一次可能的正確預測,所以我們的側重點就是儘可能的提高樣本中的正例被準確預測的比例,如果100次任務裡只有一次地震,我們要提高這次地震被預測出來的概率,也就是“寧可錯殺以前也不願放走一個”,這種情況就希望Recall
儘可能的大。
F1 Score
F1 Score
是一個綜合考慮Precision
和Recall
的評價指標,他的定義是二者的調和平均:
$$F1=frac{1}{frac{1}{2}(frac{1}{Precision}+frac{1}{Recall})}implies F1=frac{2cdot Precisioncdot Recall}{Precision+Recall}$$
Precision
和Recall
都高時F1 Score
也會高。