混淆矩陣 Confusion Matrix

每次考完每次忘,讀你千變也不厭

最近用在machine learning上似乎又有點不同的感覺

幫自己做個小整理,以後比較好回想

混淆矩陣表示方式分成四大塊 :

  1. True Positive 真陽性 : 實際上是正樣本且被預測為正樣本
  2. True Negative 真陰性 : 實際上是負樣本且被預測為負樣本
  3. False Positive 假陽性 : 實際上是負樣本但被錯誤預測為正樣本
  4. False Negative 假陰性 : 實際上是正樣本但被錯誤預測為負樣本

利用上述四個又可以產生新的幾個數值:

    1. Accuracy  =  (TP+TN) / Total  => 準確度
      1. 最常用的判斷值,可以衡量整體而言的正確分類率是多少
      2. 但如果True Positive發生率太小時,accurarcy不適用,會幾乎等於TN/Total,如下圖

      3. source: Edward Tung
      4. 這也是為甚麼我們說不要透過準確率來判斷模型好壞的原因,上面的結果準確率達到驚人的 47700 / (47700+398) = 99.2% ,乍看之下似乎不錯,然而如上圖所示,正樣本的正確分類率是 0%,意味著模型根本沒辦法辨別出正樣本的存在
    2. Precision = TP / ( TP + FP)  => 精確度
      1. 預測True的情形下,實際的「精確度」是多少
    3. Recall = TP / ( TP + FN )  => 召回率
      1. 實際True的狀況下,預測「能召回多少」實際正向的答案
    4. 當我們用sklearn.metrics時,通常會有兩列,如下圖


      1. 第一二列的的index :  0通常代表沒發生,1代表發生
      2. 所以如果以1為發生時,這邊的recall 為0.57時,這個0.57為sensitivity, 而上面的0.82為specificity
      3. 所以如果以0為發生時,這邊的recall 為0.82時表示為sensitivity, 而下面的0.57為specificity
      4. 這個例子只看accuracy似乎很好,但是sensitivity和sepcificity差太多,所以最好要從新調整
    5. F1 score =  2 / {(1/Precision) + (1/Recall)}
      1. 如果今天我覺得Precision和Recall都同等重要(權重一樣),我想要用一個指標來統合標誌它,這就是F1 Score或稱F1 Measure,它是F Measure的一個特例,當belta=1時就是F1 Measure,代表Precision和Recall都同等重要
      2. 那如果我希望多看中一點Precision,那belta就可以選擇小一點,當belta=0時,F Measure就是Precision
      3. 如果我希望多看中一點Recall,那belta就可以選擇大一點,當belta無限大時,F Measure就是Recall

Reference:

留言

這個網誌中的熱門文章

Excel上如何建立3個Y軸的圖表

ABG動脈血基礎判讀 好簡單啊~~~

CVVH實用篇,FF和clearance快速計算與應用