排序演算法常用評價指標計算方式AUC

2021-10-25 15:47:11 字數 1081 閱讀 8212

現在的排序評估指標主要包括map、ndcg和auc三個指標。ndcg考慮多指標,map和auc考慮單個指標。

最直觀的,根據auc這個名稱,我們知道,計算出roc曲線下面的面積,就是auc的值。事實上,這也是在早期 machine learning文獻中常見的auc計算方法。由於我們的測試樣本是有限的。我們得到的auc曲線必然是乙個階梯狀的。因此,計算的auc也就是這些階梯 下面的面積之和。這樣,我們先把score排序(假設score越大,此樣本屬於正類的概率越大),然後一邊掃瞄就可以得到我們想要的auc。但是,這麼 做有個缺點,就是當多個測試樣本的score相等的時候,我們調整一下閾值,得到的不是曲線乙個階梯往上或者往右的延展,而是斜著向上形成乙個梯形。此 時,我們就需要計算這個梯形的面積。由此,我們可以看到,用這種方法計算auc實際上是比較麻煩的。 

乙個關於auc的很有趣的性質是,它和wilcoxon-mann-witney test是等價的。這個等價關係的證明留在下篇帖子中給出。而wilcoxon-mann-witney test就是測試任意給乙個正類樣本和乙個負類樣本,正類樣本的score有多大的概率大於負類樣本的score。有了這個定義,我們就得到了另外一中計 算auc的辦法:得到這個概率。我們知道,在有限樣本中我們常用的得到概率的辦法就是通過頻率來估計之。這種估計隨著樣本規模的擴大而逐漸逼近真實值。這和上面的方法中,樣本數越多,計算的auc越準確類似,也和計算積分的時候,小區間劃分的越細,計算的越準確是同樣的道理。具體來說就是統計一下所有的 m×n(m為正類樣本的數目,n為負類樣本的數目)個正負樣本對中,有多少個組中的正樣本的score大於負樣本的score。當二元組中正負樣本的score相等的時候,按照0.5計算。然後除以mn。實現這個方法的複雜度為o(n^2)。n為樣本數(即n=m+n) 

第三種方法實際上和上述第二種方法是一樣的,但是複雜度減小了。它也是首先對score從大到小排序,然後令最大score對應的sample 的rank為n,第二大score對應sample的rank為n-1,以此類推。

例如在排在n=5的正樣本,共有4個樣本與其組合的值小於5。。。

然後把所有的正類樣本的rank相加,再減去兩個正樣本組合的情況。得到的就是所有的樣本中有多少對正類樣本的score大於負類樣本的score。然後再除以m×n。即 

評價指標 分類演算法中常用的評價指標

對於分類演算法,常用的評價指標有 1 precision 2 recall 3 f score 4 accuracy 5 roc 6 auc ps 不建議翻譯成中文,尤其是precision和accuracy,容易引起歧義。1.混淆矩陣 混淆矩陣是監督學習中的一種視覺化工具,主要用於比較分類結果和例...

分類演算法中常用的評價指標

分類演算法中常用的評價指標 來自網路,備份勿忘!對於分類器 分類演算法 評價指標主要有 1 precision 2 recall 3 f score 4 accuracy 5 roc 6 auc 1.首先,介紹混淆矩陣的概念。混淆矩陣是監督學習中的一種視覺化工具,主要用於比較分類結果和例項的真實資訊...

分類演算法中常用的評價指標

labeled as positive labeled as negative predicted as positive true positive tp false positive fp predicted as negative false negative fn true negative...