分類指標(biāo)

評(píng)估結(jié)果用于反應(yīng)模型的好壞,必須設(shè)計(jì)合適的評(píng)估指標(biāo)來(lái)測(cè)量該模型的好壞。模型的好壞是相對(duì)的,使用不同的評(píng)估指標(biāo)對(duì)模型的判定會(huì)得到不一樣的結(jié)果。
評(píng)估指標(biāo)根據(jù)任務(wù)類型可以分為:分類指標(biāo)、回歸指標(biāo)、聚類指標(biāo)和排序指標(biāo)等,本文主要關(guān)注分類指標(biāo)。
分類的評(píng)價(jià)指標(biāo)一般是分類準(zhǔn)確率(accuracy):對(duì)于給定的數(shù)據(jù)集,分類正確的樣本數(shù)與總的樣本數(shù)之比。準(zhǔn)確率在二分類與多分類都能應(yīng)用。
對(duì)于二分類常用的指標(biāo)為精確率(precision)與召回率(recall)。


混淆矩陣

根據(jù)上圖的混淆矩陣可以得出精確率與召回率的定義:
TP—將正類預(yù)測(cè)為正類的樣本數(shù);
FN—將正類預(yù)測(cè)為負(fù)類的樣本數(shù);
FP—將負(fù)類預(yù)測(cè)為正類的樣本數(shù);
TN—將負(fù)類預(yù)測(cè)為負(fù)類的樣本數(shù);
精確率定義為:
P = \frac{TP}{TP + FP}
召回率定義為:
R = \frac{TP}{TP + FN}
精確率可以理解為在所有預(yù)測(cè)為正類這個(gè)事件的準(zhǔn)確率有多高,召回率可以理解為真正的正類有多少被挑選了出來(lái)。理想情況下,精確率和召回率都是越高越好,但是事實(shí)一般相反,精確率高的時(shí)候,召回率低;召回率高的時(shí)候,精確率低。因此需要結(jié)合實(shí)際業(yè)務(wù)看更關(guān)注哪一個(gè)指標(biāo)來(lái)判定模型好壞,為了達(dá)到更好效果,設(shè)計(jì)了一些綜合考慮精確率與召回率的指標(biāo),如$F_1$值,$F_1$值是精確率和召回率的調(diào)和平均值:
\frac{2}{F_1} = \frac{1}{P} + \frac{1}{R}
精確率和召回率都高時(shí),F_1值也會(huì)高。

ROC與AUC

[ROC曲線]作為常用的二分類評(píng)價(jià)指標(biāo),其全稱為接收者操作特征曲線(Receiver Operating Characteristic)。該曲線縱坐標(biāo)真正率(TPR),橫坐標(biāo)為假正率(FPR),其定義如下:
TPR = \frac{TP}{TP + FN}
FPR = \frac{FP}{FP + TN}
則ROC曲線位于橫縱坐標(biāo)閾值都為0-1之間,因此首先考慮4個(gè)特殊點(diǎn)(0,0)、(1, 1)、(0, 1)、(1, 0)。(0, 0)點(diǎn)表示TPR=FPR=0,即TP=FP=0,表示該分類器將所有樣本都分為負(fù)類。同理,(1, 1)表示分類器將所有樣本都分類為正類。(0, 1)點(diǎn)表示:FPR=0,TPR=1;意味著FP=0,FN=0,這樣就是一個(gè)完美的分類器,正負(fù)類都分類完全正確。(1, 0)點(diǎn)表示TP=0, TN=0,這就是最糟糕的一個(gè)分類器,完美錯(cuò)過(guò)所有正確答案。綜上,ROC曲線上的點(diǎn)越靠近左上方,那么該分類器就越好。

制作ROC曲線

每一對(duì)TPR與FPR值可以描繪出一個(gè)點(diǎn),為了得到一條ROC曲線,需要調(diào)整不同的預(yù)測(cè)概率,來(lái)得到不同TPR于FPR值對(duì),這樣就可以得到一條ROC曲線。AUC(Area under the Curve of ROC)即ROC曲線下的面積,取值越大說(shuō)明正確率越高。

sklearn包關(guān)于分類指標(biāo)的API

sklearn.metrics模塊實(shí)現(xiàn)了一些loss, score以及一些工具函數(shù)來(lái)計(jì)算分類性能。
一些二分類(binary classification)使用的case:

  • matthews_corrcoef(y_true, y_pred):Matthews相關(guān)系數(shù),用于度量二分類的質(zhì)量
  • precision_recall_curve(y_true, probas_pred):P-R曲線
  • roc_curve(y_true, y_score[, pos_label, …]):ROC曲線
    一些多分類(multiclass)使用的case:
  • confusion_matrix(y_true, y_pred[, labels]):混淆矩陣
  • hinge_loss(y_true, pred_decision[, labels, …])
    一些多標(biāo)簽(multilabel)的case:
  • accuracy_score(y_true, y_pred[, normalize, …]):準(zhǔn)確率
  • classification_report(y_true, y_pred[, …]):分類報(bào)告,包含精確率、召回率等。
  • f1_score(y_true, y_pred[, labels, …]):F_1
  • fbeta_score(y_true, y_pred, beta[, labels, …])
  • hamming_loss(y_true, y_pred[, classes])
  • jaccard_similarity_score(y_true, y_pred[, …])
  • log_loss(y_true, y_pred[, eps, normalize, …]):logistic回歸loss,或者交叉熵loss(cross-entropy loss),用于概率估計(jì)。
  • precision_recall_fscore_support(y_true, y_pred)
  • precision_score(y_true, y_pred[, labels, …])
  • recall_score(y_true, y_pred[, labels, …])
  • zero_one_loss(y_true, y_pred[, normalize, …])
    還有一些可以同時(shí)用于二標(biāo)簽和多標(biāo)簽(不是多分類)問題:
  • average_precision_score(y_true, y_score[, …])
  • roc_auc_score(y_true, y_score[, average, …])
最后編輯于
?著作權(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),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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