機器學習中有三個評價指標,即準確率(accuracy)、精確率(precision)、召回率(recall)和F值(F-measure)。下面對它所表達的意思進行講解。
分類為題
對于一個二分類問題,它有四種情況:
如果一個實例是正類,它被分為正類,記為 真正(True Positive);
如果一個實例是正類,它被分為負類,記為 假負(False Negative);
如果一個實例是負類,它被分為正類,記為 假正(False Positive);
如果一個實例是負類,它被分為負類,記為 真負(True Negative)。
在表格中可以表示為:
| 真實1 | 真實0 | |
|---|---|---|
| 預(yù)測1 | TP | FP |
| 預(yù)測0 | FN | TN |
準確率、精確率、召回率、F值
1.準確率(Accuracy)
即所有預(yù)測都正確的比率:
2.精確率(Precision)
查準率,全部預(yù)測為1中實際標簽為1的比率:
3.召回率(Recall)
查全率,實際標簽為1中正確預(yù)測為1的比率:
4.F值(F-measure)
F-measure是Precision和Recall的加權(quán)調(diào)和平均:
當參數(shù)α=1時,就是常見的F1,即
精確度和召回率成負相關(guān),即其中一個變大,另一個就會變小,我沒期望兩個值都越大越好,所以引入了F值,當精確度和召回率都最大時F值達到最大。
代碼實現(xiàn)
from sklearn.metrics import precision_recall_fscore_support
precision, recall, f1score, support = precision_recall_fscore_support(y_true, y_pred, beta=1.0, labels=None,
pos_label=1, average=None, warn_for=(‘precision’, ’recall’, ’f-score’), sample_weight=None)
詳細信息參考官方文檔