【機器學習】準確率、精確率、召回率

糾正下,精確率(precision)和準確率(accuracy)是不同的,題主問的應該是精確率與召回率之間的差異。 Blog
一.定義辨析算法

- TP,True Positive

- FP,False Positive

- TN,True Negative

- FN,False Negative
併發

精確率:precision = TP / (TP + FP)   分母是預測爲正的樣本數性能

召回率:recall = TP / (TP + FN)  原來樣本中全部的正樣本數spa

準確率:accuracy = (TP + TN) / (TP+ FP + TN + FN)htm

精確率是針對咱們預測結果而言的,它表示的是預測爲正的樣本中有多少是真正的正樣本。ci

召回率是針對咱們原來的樣本而言的,它表示的是樣本中的正例有多少被預測正確了。get

實際上很是簡單,精確率是針對咱們預測結果而言的,它表示的是預測爲正的樣本中有多少是真正的正樣本。那麼預測爲正就有兩種可能了,一種就是把正類預測爲正類(TP),另外一種就是把負類預測爲正類(FP),也就是it


召回率是針對咱們原來的樣本而言的,它表示的是樣本中的正例有多少被預測正確了。那也有兩種可能,一種是把原來的正類預測成正類(TP),另外一種就是把原來的正類預測爲負類(FN)。io

其實就是分母不一樣,一個分母是預測爲正的樣本數,另外一個是原來樣本中全部的正樣本數class

舉個栗子

假設咱們手上有60個正樣本,40個負樣本,咱們要找出全部的正樣本,系統查找出50個,其中只有40個是真正的正樣本,計算上述各指標。
  • TP: 將正類預測爲正類數 40
  • FN: 將正類預測爲負類數 20
  • FP: 將負類預測爲正類數 10
  • TN: 將負類預測爲負類數 30

準確率(accuracy) = 預測對的/全部 = (TP+TN)/(TP+FN+FP+TN) = 70%
精確率(precision) = TP/(TP+FP) = 80%
召回率(recall) = TP/(TP+FN) = 2/3

而F值,則是綜合這兩者指標的評估指標,用於綜合反映總體的指標。
F值  = 正確率 * 召回率 * 2 / (正確率 + 召回率) (F 值即爲正確率和召回率的調和平均值)。

調和平均值公式:

ROC 曲線在 Y 軸上畫出了真正例率(TPR),在 X 軸上畫出了假正例率 (FPR)(在全部真假中有多少被標記位假真了)。TPR 是召回率,FPR 是反例被報告爲正例的機率。這二者均可以經過混淆矩陣計算獲得。

1.  選擇最佳的診斷界限值。ROC曲線越靠近左上角,試驗的準確性就越高。最靠近左上角的ROC曲線的點是錯誤最少的最好閾值,其假陽性和假陰性的總數最少

2.  兩種或兩種以上不一樣診斷試驗對算法性能的比較。在對同一種算法的兩種或兩種以上診斷方法進行比較時,可將各試驗的ROC曲線繪製到同一座標中,以直觀地鑑別優劣,靠近左上角的ROC曲線所表明的受試者工做最準確。亦可經過分別計算各個試驗的ROC曲線下的面積(AUC)進行比較,哪種試驗的 AUC最大,則哪種試驗的診斷價值最佳。

  在閾值爲 1.0 的狀況下,咱們將位於圖的左下方,由於沒有將任何數據點識別爲正例,這致使沒有真正例,也沒有假正例(TPR = FPR = 0)。當下降閾值時,咱們將更多的數據點識別爲正例,致使更多的真正例,但也有更多的假正例 ( TPR 和 FPR 增長)。最終,在閾值 0.0 處,咱們將全部數據點識別爲正,並發現位於 ROC 曲線的右上角 ( TPR = FPR = 1.0 )。

相關文章
相關標籤/搜索