混淆矩陣、準(zhǔn)確率、精確率、召回率、F值、ROC曲線、AUC、PR曲線-Sklearn.metrics評(píng)估方法

目錄

混淆矩陣 confusion-matrix

分類準(zhǔn)確率 accuracy

精確率Precision

召回率 recall

F1值

Roc曲線、AUC

PR曲線

混淆矩陣 confusion-matrix

TP(True Positive): 真實(shí)為0,預(yù)測也為0

FN(False Negative): 真實(shí)為0,預(yù)測為1

FP(False Positive): 真實(shí)為1,預(yù)測為0

TN(True Negative): 真實(shí)為0,預(yù)測也為0

混淆矩陣的API

fromsklearn.metricsimportconfusion_matrixconfusion_matrix = confusion_matrix(y_test, y_predict)

image.png

image.png

分類準(zhǔn)確率 accuracy

所有樣本中被預(yù)測正確的樣本的比率

分類模型總體判斷的準(zhǔn)確率(包括了所有class的總體準(zhǔn)確率)

準(zhǔn)確率的API:

fromsklearn.metricsimportaccuracyaccuracy = accuracy_score(y_test, y_predict)

image.png

精確率Precision

預(yù)測為正類0的準(zhǔn)確率

TP / ( TP + FP )

fromsklearn.metricsimportprecision_scoreprecision = precision_score(y_test, y_predict)

召回率 recall

真實(shí)為0的準(zhǔn)確率

image.png

真實(shí)為1的準(zhǔn)確率

Recall = TN/(TN+FP)

召回率API:

fromsklearn.metricsimportrecall_scorerecall = recall_score(y_test, y_predict)#recall得到的是一個(gè)list,是每一類的召回率

F1值

用來衡量二分類模型精確度的一種指標(biāo)。它同時(shí)兼顧了分類模型的準(zhǔn)確率召回率。F1分?jǐn)?shù)可以看作是模型準(zhǔn)確率召回率的一種加權(quán)平均,它的最大值是1,最小值是0。

image.png

fromsklearn.metricsimportf1_scoref1_score(y_test, y_predict)

Roc曲線、AUC

TPR FPR

樣本中的真實(shí)正例類別總數(shù)即TP+FN

TPR即True Positive Rate,TPR = TP/(TP+FN)。

TPR:真實(shí)的正例0中,被預(yù)測為正例的比例

樣本中的真實(shí)反例類別總數(shù)為FP+TN

FPR即False Positive Rate,F(xiàn)PR=FP/(TN+FP)。

FPR:真實(shí)的反例1中,被預(yù)測為正例的比例

理想分類器TPR=1,F(xiàn)PR=0

截?cái)帱c(diǎn)thresholds

機(jī)器學(xué)習(xí)算法對(duì)test樣本進(jìn)行預(yù)測后,可以輸出各test樣本對(duì)某個(gè)類別的相似度概率。比如t1是P類別的概率為0.3,一般我們認(rèn)為概率低于0.5,t1就屬于類別N。這里的0.5,就是”截?cái)帱c(diǎn)”。

總結(jié)一下,對(duì)于計(jì)算ROC,最重要的三個(gè)概念就是TPR, FPR, 截?cái)帱c(diǎn)。

ROC曲線

ROC曲線越接近左上角,代表模型越好,即ACU接近1

fromsklearn.metricsimportroc_auc_score, aucimportmatplotlib.pyplotasplty_predict = model.predict(x_test)y_probs = model.predict_proba(x_test)#模型的預(yù)測得分fpr, tpr, thresholds = metrics.roc_curve(y_test,y_probs)roc_auc = auc(fpr, tpr)#auc為Roc曲線下的面積#開始畫ROC曲線plt.plot(fpr, tpr,'b',label='AUC = %0.2f'% roc_auc)plt.legend(loc='lower right')plt.plot([0,1],[0,1],'r--')plt.xlim([-0.1,1.1])plt.ylim([-0.1,1.1])plt.xlabel('False Positive Rate')#橫坐標(biāo)是fprplt.ylabel('True Positive Rate')#縱坐標(biāo)是tprplt.title('Receiver operating characteristic example')plt.show()

運(yùn)行結(jié)果如下圖所示:

參考資料:

1.混淆矩陣(Confusion Matrix)

http://www.itdecent.cn/p/0fc8a0b784f1

2.ROC與AUC的定義與使用詳解

https://blog.csdn.net/shenxiaoming77/article/details/72627882

作者:小歪與大白兔

鏈接:http://www.itdecent.cn/p/5df19746daf9

來源:簡書

簡書著作權(quán)歸作者所有,任何形式的轉(zhuǎn)載都請(qǐng)聯(lián)系作者獲得授權(quán)并注明出處。

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

相關(guān)閱讀更多精彩內(nèi)容

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