機器學習算法中的準確率、精確率、召回率和F值

機器學習中有三個評價指標,即準確率(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ù)測都正確的比率:
accuracy = \frac{TP+TN}{TP+FP+FN+TN}

2.精確率(Precision)
查準率,全部預(yù)測為1中實際標簽為1的比率:
precision = \frac{TP}{TP+FP}

3.召回率(Recall)
查全率,實際標簽為1中正確預(yù)測為1的比率:
recall = \frac{TP}{TP+FN}

4.F值(F-measure)
F-measure是Precision和Recall的加權(quán)調(diào)和平均:
F = \frac{(\alpha ^{2}+1)P*R}{\alpha ^{2}(P+R)}
當參數(shù)α=1時,就是常見的F1,即
F1 = \frac{2*P*R}{(P+R)}
精確度和召回率成負相關(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)

詳細信息參考官方文檔

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容