1. 程式人生 > >準確率(Accuracy), 精確率(Precision), 召回率(Recall)和F1-Measure

準確率(Accuracy), 精確率(Precision), 召回率(Recall)和F1-Measure

機器學習(ML),自然語言處理(NLP),資訊檢索(IR)等領域,評估(Evaluation)是一個必要的 工作,而其評價指標往往有如下幾點:準確率(Accuracy),精確率(Precision),召回率(Recall)和F1-Measure。(注: 相對來說,IR 的 ground truth 很多時候是一個 Ordered List, 而不是一個 Bool 型別的 Unordered Collection,在都找到的情況下,排在第三名還是第四名損失並不是很大,而排在第一名和第一百名,雖然都是“找到了”,但是意義是不一樣的,因此 更多可能適用於 MAP 之類評估指標。)

本文將簡單介紹其中幾個概念。中文中這幾個評價指標翻譯各有不同,所以一般情況下推薦使用英文。

現在我先假定一個具體場景作為例子。

假如某個班級有男生80人,女生20人,共計100人.目標是找出所有女生.
現在某人挑選出50個人,其中20人是女生,另外還錯誤的把30個男生也當作女生挑選出來了.
作為評估者的你需要來評估(evaluation)下他的工作

首先我們可以計算準確率(accuracy),其定義是: 對於給定的測試資料集,分類器正確分類的樣本數與總樣本數之比。也就是損失函式是0-1損失時測試資料集上的準確率[1].

這樣說聽起來有點抽象,簡單說就是,前面的場景中,實際情況是那個班級有男的和女的兩類,某人(也就是定義中所說的分類器)他又把班級中的人分為男女兩類。accuracy需要得到的是此君分正確的人

總人數的比例。很容易,我們可以得到:他把其中70(20女+50男)人判定正確了,而總人數是100人,所以它的accuracy就是70 %(70 / 100).

由準確率,我們的確可以在一些場合,從某種意義上得到一個分類器是否有效,但它並不總是能有效的評價一個分類器的工作。舉個例子,google抓取 了argcv 100個頁面,而它索引中共有10,000,000個頁面,隨機抽一個頁面,分類下,這是不是argcv的頁面呢?如果以accuracy來判斷我的工 作,那我會把所有的頁面都判斷為"不是argcv的頁面",因為我這樣效率非常高(return false,一句話),而accuracy已經到了99.999%(9,999,900/10,000,000),完爆其它很多分類器辛辛苦苦算的值,而我這個演算法顯然不是需求期待的,那怎麼解決呢?這就是precision,recall和f1-measure出場的時間了.

在說precision,recall和f1-measure之前,我們需要先需要定義TP,FN,FP,TN四種分類情況.
按照前面例子,我們需要從一個班級中的人中尋找所有女生,如果把這個任務當成一個分類器的話,那麼女生就是我們需要的,而男生不是,所以我們稱女生為"正類",而男生為"負類".

相關(Relevant),正類 無關(NonRelevant),負類
被檢索到(Retrieved) true positives(TP 正類判定為正類,例子中就是正確的判定"這位是女生") false positives(FP 負類判定為正類,"存偽",例子中就是分明是男生卻判斷為女生,當下偽娘橫行,這個錯常有人犯)
未被檢索到(Not Retrieved) false negatives(FN 正類判定為負類,"去真",例子中就是,分明是女生,這哥們卻判斷為男生--梁山伯同學犯的錯就是這個) true negatives(TN 負類判定為負類,也就是一個男生被判斷為男生,像我這樣的純爺們一準兒就會在此處)

通過這張表,我們可以很容易得到這幾個值:
TP=20
FP=30
FN=0
TN=50

精確率(precision)的公式是,它計算的是所有"正確被檢索的item(TP)"佔所有"實際被檢索到的(TP+FP)"的比例.

在例子中就是希望知道此君得到的所有人中,正確的人(也就是女生)佔有的比例.所以其precision也就是40%(20女生/(20女生+30誤判為女生的男生)).

召回率(recall)的公式是,它計算的是所有"正確被檢索的item(TP)"佔所有"應該檢索到的item(TP+FN)"的比例。

在例子中就是希望知道此君得到的女生佔本班中所有女生的比例,所以其recall也就是100%(20女生/(20女生+ 0 誤判為男生的女生))

F1值就是精確值和召回率的調和均值,也就是

調整下也就是

例子中 F1-measure 也就是約為 57.143%().

需要說明的是,有人[2]列了這樣個公式

將F-measure一般化.

F1-measure認為精確率和召回率的權重是一樣的,但有些場景下,我們可能認為精確率會更加重要,調整引數a,使用Fa-measure可以幫助我們更好的evaluate結果.

話雖然很多,其實實現非常輕鬆,點選此處可以看到我的一個簡單的實現.

References

==================================================

自己理解 + 我老師的說法就是,準確率就是找得對,召回率就是找得全。

大概就是你問問一個模型,這堆東西是不是某個類的時候,準確率就是 它說是,這東西就確實是的概率吧,召回率就是, 它說是,但它漏說了(1-召回率)這麼多

==================================================

在資訊檢索、分類體系中,有一系列的指標,搞清楚這些指標對於評價檢索和分類效能非常重要,因此最近根據網友的部落格做了一個彙總。

準確率、召回率、F1

資訊檢索、分類、識別、翻譯等領域兩個最基本指標是召回率(Recall Rate)準確率(Precision Rate),召回率也叫查全率,準確率也叫查準率,概念公式:

             召回率(Recall)      =  系統檢索到的相關檔案 / 系統所有相關的檔案總數

             準確率(Precision) =  系統檢索到的相關檔案 / 系統所有檢索到的檔案總數

圖示表示如下:

  A:             (搜到的也想要的)
B:檢索到的,但是不相關的          (搜到的但沒用的)
C:未檢索到的,但卻是相關的        (沒搜到,然而實際上想要的)
D:未檢索到的,也不相關的          (沒搜到也沒用的)

注意:準確率和召回率是互相影響的,理想情況下肯定是做到兩者都高,但是一般情況下準確率高、召回率就低,召回率低、準確率高,當然如果兩者都低,那是什麼地方出問題了。一般情況,用不同的閥值,統計出一組不同閥值下的精確率和召回率,如下圖:

如果是做搜尋,那就是保證召回的情況下提升準確率;如果做疾病監測、反垃圾,則是保準確率的條件下,提升召回。

所以,在兩者都要求高的情況下,可以用F1來衡量。

  1. F1 =  * P * R / (P + R)  

公式基本上就是這樣,但是如何算圖1中的A、B、C、D呢?這需要人工標註,人工標註資料需要較多時間且枯燥,如果僅僅是做實驗可以用用現成的語料。當然,還有一個辦法,找個一個比較成熟的演算法作為基準,用該演算法的結果作為樣本來進行比照,這個方法也有點問題,如果有現成的很好的演算法,就不用再研究了。

AP和mAP(mean Average Precision)

mAP是為解決P,R,F-measure的單點值侷限性的。為了得到 一個能夠反映全域性效能的指標,可以看考察下圖,其中兩條曲線(方塊點與圓點)分佈對應了兩個檢索系統的準確率-召回率曲線

 

可以看出,雖然兩個系統的效能曲線有所交疊但是以圓點標示的系統的效能在絕大多數情況下要遠好於用方塊標示的系統。

從中我們可以 發現一點,如果一個系統的效能較好,其曲線應當儘可能的向上突出。

更加具體的,曲線與座標軸之間的面積應當越大。

最理想的系統, 其包含的面積應當是1,而所有系統的包含的面積都應當大於0。這就是用以評價資訊檢索系統的最常用效能指標,平均準確率mAP其規範的定義如下:(其中P,R分別為準確率與召回率)

ROC和AUC

ROC和AUC是評價分類器的指標,上面第一個圖的ABCD仍然使用,只是需要稍微變換。


回到ROC上來,ROC的全名叫做Receiver Operating Characteristic。

ROC關注兩個指標

   True Positive Rate ( TPR )  = TP / [ TP + FN] ,TPR代表能將正例分對的概率

   False Positive Rate( FPR ) = FP / [ FP + TN] ,FPR代表將負例錯分為正例的概率

在ROC 空間中,每個點的橫座標是FPR,縱座標是TPR,這也就描繪了分類器在TP(真正的正例)和FP(錯誤的正例)間的trade-off。ROC的主要分 析工具是一個畫在ROC空間的曲線——ROC curve。我們知道,對於二值分類問題,例項的值往往是連續值,我們通過設定一個閾值,將例項分類到正類或者負類(比如大於閾值劃分為正類)。因此我們 可以變化閾值,根據不同的閾值進行分類,根據分類結果計算得到ROC空間中相應的點,連線這些點就形成ROC curve。ROC curve經過(0,0)(1,1),實際上(0, 0)和(1, 1)連線形成的ROC curve實際上代表的是一個隨機分類器。一般情況下,這個曲線都應該處於(0, 0)和(1, 1)連線的上方。如圖所示。


用ROC curve來表示分類器的performance很直觀好用。可是,人們總是希望能有一個數值來標誌分類器的好壞。

於是Area Under roc Curve(AUC)就出現了。顧名思義,AUC的值就是處於ROC curve下方的那部分面積的大小。通常,AUC的值介於0.5到1.0之間,較大的AUC代表了較好的Performance。

AUC計算工具:

P/R和ROC是兩個不同的評價指標和計算方式,一般情況下,檢索用前者,分類、識別等用後者。

參考連結:

:Recall,又稱“查全率”——還是查全率好記,也更能體現其實質意義。
準確率


“召回率”與“準確率”雖然沒有必然的關係(從上面公式中可以看到),在實際應用中,是相互制約的。要根據實際需求,找到一個平衡點。
當 我們問檢索系統某一件事的所有細節時(輸入檢索query查詢詞),Recall指:檢索系統能“回憶”起那些事的多少細節,通俗來講就是“回憶的能 力”。“能回憶起來的細節數” 除以 “系統知道這件事的所有細節”,就是“記憶率”,也就是recall——召回率。簡單的,也可以理解為查全率。

________________________________________________________________

在人工智慧中,混淆矩陣(confusion matrix)是視覺化工具,特別用於監督學習,在無監督學習一般叫做匹配矩陣。

如有150個樣本資料,這些資料分成3類,每類50個。分類結束後得到的混淆矩陣為:
預測
類1 類2 類3
實際
類1 43 5 2
類2 2 45 3
類3 0 1 49
每一行之和為50,表示50個樣本,

第一行說明類1的50個樣本有43個分類正確,5個錯分為類2,2個錯分為類3

相關推薦

準確率(Accuracy) 精確(Precision) 召回(Recall)F1-Measure

搜索 例如 總數 文檔 measure 目標 就是 原本 pos 先驗知識   我們首先將數據的類別統一分為兩類:正類和負類。例如:一個數據集中的數據一共有3類,小學生、中學生、高中生。我們的目標是預測小學生,那麽標記為小學生的數據就是正類,標記為其他類型的數據都是負類。

準確率(Accuracy), 精確(Precision), 召回(Recall)F1-Measure

機器學習(ML),自然語言處理(NLP),資訊檢索(IR)等領域,評估(Evaluation)是一個必要的 工作,而其評價指標往往有如下幾點:準確率(Accuracy),精確率(Precision),召回率(Recall)和F1-Measure。(注: 相對來說,IR 的

機器學習效能評估指標---準確率(Accuracy), 精確(Precision), 召回(Recall)

分類 混淆矩陣1 True Positive(真正, TP):將正類預測為正類數.True Negative(真負 , TN):將負類預測為負類數.False Positive(假正, FP):將負類預測為正類數 →→ 誤報 (Type I

準確率(Accuracy), 精確(Precision), 召回(Recall)F1-Measure,confusion matrix

自然語言處理(ML),機器學習(NLP),資訊檢索(IR)等領域,評估(Evaluation)是一個必要的工作,而其評價指標往往有如下幾點:準確率(Accuracy),精確率(Precision),召回率(Recall)和F1-Measure。 本文將簡單介紹其中幾個概

白話理解: 準確率(Accuracy), 精確(Precision), 召回(Recall)

本文重點是在白話,不是數學上面的嚴格定義. 那首先要有一個業務場景,就好比上學,學習資料庫,就要用到學生成績. 在這,我們的業務場景就是對100個西瓜進行分類(已知生熟各半) 下面是針對上面場景,對各個術語的解釋 準確率(Accuracy): 對所有西瓜分類正確的比率. 精確率(Precision): 挑

FP,FN,TP,TN與精確(Precision),召回(Recall),準確率(Accuracy)

一: FP,FN,TP,TN 剛接觸這些評價指標時,感覺很難記憶FP,FN,TP,TN,主要還是要理解,理解後就容易記住了 P(Positive)和N(Negative) 代表模型的判斷結果 T(Tr

準確率(accuracy),精確(Precision)召回(Recall),AP,mAP的概念

先假定一個具體場景作為例子。假如某個班級有男生80人,女生20人,共計100人.目標是找出所有女生.  某人挑選出50個人,其中20人是女生,另外還錯誤的把30個男生也當作女生挑選出來了.  作為評估者的你需要來評估(evaluation)下他的工作      首先我們可以計算準確率(accuracy),其定

Precision,Recall and F1-measure 準確率召回以及綜合評價指標

通俗易懂,故轉一下。 轉自: http://www.cnblogs.com/bluepoint2009/archive/2012/09/18/precision-recall-f_measures.html   在資訊檢索和自然語言處理中經常會使用這些引數,下面簡單介紹如

結合原始碼分析Spark中的Accuracy(準確率), Precision(精確), F1-Measure

例子 某大學一個系,總共100人,其中男90人,女10人,現在根據每個人的特徵,預測性別 Accuracy(準確率) Accuracy=預測正確的數量需要預測的總數 計算 由於我知道男生遠多於女生,所以我完全無視特徵,直接預測所有人都是

Recall/Precision(召回/準確率)以及F1-measure

        近期在看一些文獻,用到recall(召回率)和precision(準確率)兩個概念以及F1-measure,前兩個概念可以參考下面的內容,之前也瞭解過,但因為F1-measure不理解,也不明白如何衡量,加上近期剛好看到了F-norm(Frobenius範數

機器學習模型準確率精確召回,F-1指標及ROC曲線

01準確率,精確率,召回率,F-1指標及ROC曲線 假設原樣本有兩類,正樣本True和負樣本False 正樣本 -------------------------------True 負樣本 --------------------------------False 真 正樣本 True P

模型評估的基本概念以及ROC/AUC(召回(查全率、覆蓋率)/取偽(負召回 )/精確(命中率、查準率)/準確率

分類模型評估: 迴歸模型評估: ROC和AUC定義 ROC全稱是“受試者工作特徵”(Receiver Operating Characteristic)。ROC曲線的面積就是AUC(Area Under the Curve)。AUC用於衡量“二分類問題”機器學習演算法

NLP-準確率精確召回F1

記錄準確率(Accuracy)、精確率(Precision)、召回率(Recall)和F1值(F-Measure)計算公式,和如何使用TensorFlow實現 一、計算公式 二、TensorFlow實現 # Accuracy w

準確率精確召回 F1

在資訊檢索、分類體系中,有一系列的指標,搞清楚這些指標對於評價檢索和分類效能非常重要,因此最近根據網友的部落格做了一個彙總。準確率、召回率、F1資訊檢索、分類、識別、翻譯等領域兩個最基本指標是召回率(Recall Rate)和精確率(Precision Rate),召回率也叫

準確率精確召回F1值、ROC/AUC整理筆記

對於二分類問題,機器預測的和實際的還是會有所偏差,所以我們引入以下幾個概念來評價分類器的優良。一、TP、TN、FP、FN概念首先有關TP、TN、FP、FN的概念。大體來看,TP與TN都是分對了情況,TP是正類,TN是負類。則推斷出,FP是把錯的分成了對的,而FN則是把對的分成

機器學習之分類問題的評估指標2---準確率精確召回以及F1

本節主要了解一下sklearn.metrics下計算準確率、精確率、召回率和F1值的函式以及對於多分類問題計算時的理解 1、sklearn.metrics.accuracy_score(y_true, y_pred, normalize=True, sample_weigh

精確召回F1 值、ROC、AUC 各自的優缺點是什麽?

src lar ssi 100% 優缺點 lan 簡單 答案 fec 作者:竹間智能 Emotibot鏈接:https://www.zhihu.com/question/30643044/answer/161955532來源:知乎著作權歸作者所有。商業轉載請聯系作者獲得授權

機器學習實踐(十五)—sklearn之分類演算法-邏輯迴歸、精確召回、ROC、AUC

邏輯迴歸雖然名字中帶有迴歸兩字,但它實際是一個分類演算法。 一、邏輯迴歸的應用場景 廣告點選率 是否為垃圾郵件 是否患病 金融詐騙 虛假賬號 看到上面的例子,我們可以發現其中的特點,那就是都屬於兩個類別之間的判斷。 邏輯迴歸就是

機器學習效能評估指標(精確召回、ROC、AUC)

實際上非常簡單,精確率是針對我們預測結果而言的,它表示的是預測為正的樣本中有多少是對的。那麼預測為正就有兩種可能了,一種就是把正類預測為正類(TP),另一種就是把負類預測為正類(FP)。                       P = TP/(TP+FP) 而召回

精確召回之間的差別

實際上非常簡單,精確率是針對我們預測結果而言的,它表示的是預測為正的樣本中有多少是真正的正樣本。那麼預測為正就有兩種可能了,一種就是把正類預測為正類(TP),另一種就是把負類預測為正類(FP),也就是 而召回率是針對我們原來的樣本而言的,它表示的是樣本中的正例有多少被預測正確