Processing math: 100%

機器學習演算法的性能指標:precision, recall, accuracy, sensitivity 與 specificity

Precision, recall, and accuracy


目前聽到 precision / recall 時,還沒能夠很直覺地理解它的意義。

因此整理了一下定義及例子,設法加強直覺性的理解。

定義:
Precision=# of of true positives# of predicted positives=# of true positives# of true positives + # of false positives

Recall=# of true positives# of actual positives=# of true positives# of true positives + # of false negatives

Accuracy=# of true positives + # of true negatives# of actual positives + # of actual negatives
意義:
(假設預測一個案例是 positive 或 negative)

Precision: 預測是 positive 的案例中,真的是 positive 的比例。(對於 positive 預測正確的比例,預測的準確度)

Recall: 在 positive 案例中,正確預測是 positive 的比例。(對於 positive 案例回想正確的比例)

Accuracy: 在所有案例中,對於 positive 及 negative 預測正確的比例。
以癌症預測演算法為例:


Precision 是衡量在所有演算法預測為有癌症的人之中,多少比例的人實際上有癌症。

Recall 是衡量在所有實際上有癌症的人之中,多少比例的人被演算法預測為有癌症。

Accuracy 是衡量在所有檢測的人之中,多少比例的人被演算法預測正確。



Precision=77+5=0.58

Recall=77+8=0.47

Accuracy=7+807+8+5+80=0.87
只看 accuracy 容易有盲點,以上述的例子,因為在所有檢測的人之中,實際上有癌症的人比例很低,演算法只要盡量往沒有癌症的方向猜,就可以達到比較高的 accuracy。


在上面這個極端的例子:
Precision=11+1=0.5

Recall=11+14=0.07

Accuracy=1+841+14+1+84=0.85

Sensitivity and specificity


Sensitivity=Recall=True Positive Rate=# of true positives# of actual positives

Specificity=True Negative Rate=# of true negatives# of actual negatives
意義:
(假設預測一個案例是 positive 或 negative)

Sensitivity: 在 positive 案例中,正確預測是 positive 的比例。

Specificity: 在 negative 案例中,正確預測是 negative 的比例。
以癌症預測演算法為例:


Sensitivity 是衡量在所有實際上有癌症的人之中,多少比例的人被演算法預測為有癌症。

Specificity 是衡量在所有實際上沒有癌症的人之中,多少比例的人被演算法預測為沒有癌症。



Sensitivity=77+8=0.47

Specificity=805+80=0.94

參考資料


[WiKi] Precision and recall

[WiKi] Sensitivity and specificity