Confusion Matrix  

混淆矩陣 與 真陽TP、真陰TN、偽陽FP、偽陰FN

光看到這個標題似乎就有點令人混淆
究竟這個混淆矩陣(Confusion Matrix)想要表達的是什麼呢?


這其實就可用在人工智慧領域中的分類預測(Classification)
來看預測的準確度

咦?可是要預測不就是準跟不準嗎?
但其實還是可以細分──

 

舉例來說:
想看氣象預測說「整週天氣會不會下雨
可能有個預測系統告訴你週一到週日是「會、不會、不會、會、不會、會、不會」
而實際上下雨情況是「下、沒下、下、下、下、沒下、沒下」

所以會有幾種情況:
‧預測會下,實際上也真的下了 → 準
‧預測不會下,實際上也真的沒下 → 準
‧預測會下,實際上卻沒下 → 不準
‧預測不會下,實際上卻下了 → 不準

那這一週七天的預測就可整理如下:

   預測   實際   準確   預測結果分類
 會  Positive  下  Positive  準  True  True Positive
 不會  Negative  沒下  Negative  準  True  True Negative
 不會  Negative  下  Positive  不準  False  False Negative
 會  Positive  下  Positive  準  True  True Positive
 不會  Negative  下  Positive  準  True  False Negative 
 會  Positive  沒下  Negative  不準  False  False Positive
 不會  Negative  沒下  Negative  準  True  True Negative

預測結果就是看系統預測是陽(有下)還是陰(沒下)、以及預測結果是不是真的(真True/偽False)
來看是哪一種情形
所以會有:

‧真陽(True Positive, TP):預測為Positive且預測準確True,例如預測有下雨且真的下了
‧真陰(True Negative, TN):預測為Negative且預測準確True,例如預測不會下雨且真的沒下
‧偽陽(Flase Positive, FP):預測為Positive但預測錯False,例如預測有下雨不過實際上沒下
‧偽陰(Flase Negative, FN):預測為Negative但預測錯False,例如預測不會下雨不過實際下雨了

那這個預測系統的成效如何
我們來把他放進混淆矩陣看看

   預測
 會下Positive   不會下Negative 
實際  有下Positive  TP=2次 (28.57%)   FN=2次 (28.57%)
 沒下Negative   FP=1次 (14.29%)  TN=2次 (28.57%)

雖然說預測錯的比例近30%
但是重點就在於是哪種錯「比較不希望發生」
(這邊有沒有感覺很像統計裡面的 型I 誤差 和 型II 誤差)

以預測下雨的例子來說
如果天氣預測說會下雨
我們可能就會準備一下雨傘
就算沒下雨也頂多只是多帶了傘無傷大雅

但是如果天氣預報說不會下雨
沒想到竟然下了
那沒帶傘的話就準備淋雨很不方便
所以我們不希望發生的就是這種「預測不會下、實際卻下雨」的情況
也就是FN

在這個預測系統中這週的FN高達近30%
其實好像蠻不準的 (雖說才預測七天是會看起來比較誇張)

問題:那有沒有反過來
FP是比較不希望發生、而FN比較無關痛癢的呢?

舉個例子:
要不要針對用戶進行促銷活動
今天公司手上有一堆過去客戶的資料
然後公司的部門就引進某一套Data Mining系統
把一些客戶的年齡、居住地、過去消費、性別等全部丟進這套系統裡跑
然後推測出要寄DM跟樣品進行促銷活動、與不用促銷的兩群客戶

公司就針對要促銷的客戶投入了促銷的成本
不用促銷的就先不進行動作
最後結果是這樣:

   預測
 要促銷 Positive   不用促銷 Negative 
實際  有來消費 Positive  TP=210   FN=57
 沒來消費 Negative   FP=42  TN=141

 

有促銷活動,後來也有來消費的是210人
這些人可以看看是否真的都因促銷活動而來
(比方讓門市小姐問說是不是因為促銷活動)

至於沒有促銷,但也有來店消費的有57人
或許可能有些是老客戶定期都會來
那可能不用寄促銷樣品的方式
(不過當然對老客戶要有別套方法來留住他們,不過就不在此情境下多說了)

沒有促銷、也沒有來消費的
這塊算是未定數
可能還有別的方法來吸引他們

但最不希望發生的仍然是FP那塊
今天已經花錢寄DM、寄樣品過去了
結果也還是沒來消費
那這可能就是沒有達到宣傳效果
這些宣傳成本是浪費掉的 (甚至可能扣分)
而且那42個人就佔了宣傳成本中的16.7%以上!(42/252)
所以才希望避免

 

 

再講其他例子:
這次是跟學習分析有關
在學生期中考之前就先預測誰成績有危機
通常在做一些像線上學習系統時
學生參與討論區程度、每週看課程影片的時間、每週習題答題情況
這些資料系統上多會儲存起來
老師就可以利用這些資訊來做Data Mining

假設今天老師用人工智慧來跑出一組預測的規則
告訴老師說學生有哪些情況就要注意
比方:若一個學生討論區留言低於5篇、影片看完率低於80%、作業答題分數低於平均,則要注意其學習情況
這樣的規則預測出有13+10=23名學生可能有危機

後來期中考成績出來
果然還是有一些學生考爆了

   預測
 學習情況要注意 Positive   學習情況ok Negative 
實際  期中考爆掉 Positive  TP=18  FN=7
 期中考ok  Negative   FP=10  TN=45

那這個系統我們希望怎麼應用?

先看看它預測的準度如何
TP那18個是準確抓出來的
只要學生留言低於5篇、影片看完率低於80%、作業答題分數低於平均
那就真的要去注意
因為裡面有64.29%是真的期中會爆掉 (18/28)

至於FP那10個雖然系統預測說有危機
不過考出來沒有爆掉
那倒也沒關係
老師當然還是可以去關心一下
鼓勵學生多參與
所以FP雖然預測是錯的不過倒也還是可以幫助老師多注意特定學生

而系統預測學習情況OK、期中考也真的OK的
那就還好不用太擔心

最需要注意的在於FN那7個同學
他們並沒有被預測出來說期中會爆掉
那究竟是什麼原因沒被抓出來
有什麼其他判斷變項可以幫助這個預測系統呢?
以及有什麼其他原因老師可以多去關心呢?
這都是學習分析之後
實際上相當重要的下一步

 

 

舉最後一個例子:
這是之前恩師吳智鴻老師教我們寫的論文
投稿CIEF研討會
預測延遲性診斷系統

什麼是延遲性診斷(delayed diagnosis)?
就是醫生判定說病患沒問題、可以出院
沒想到出院後才發病的情況
像是內出血在急診室中沒有被判斷出來
或是腦震盪等等

通常在地方遇到重大事故時
急診室是忙到翻的情況
許多檢傷必須在第一時間做好蒐集動作
比方脈搏、血壓、意識、檢傷級數等等
如果有個預測系統能先用這些資訊
偵測病人是否有可能發生延遲診斷
相信可以幫助急診室在因應大量傷患時能夠注意
不讓那些「看似可以先出院的病患」在離開之後忽然情況惡化
而要想辦法讓他們先留院待觀察

   預測
 延遲性診斷 Positive   無延遲性診斷 ok Negative 
實際  延遲性診斷 Positive  TP=25  FN=5
 無延遲性診斷 Negative   FP=40  TN=110

當然就像剛剛學習診斷的類似
TP與TN是準確預測的
重點就在於FN是我們最不希望發生的
除了病人的性命受到威脅
就醫院的職責來考量的話
其責任歸屬也會比較麻煩
所以在這種系統上
都會盡量讓系統的FN壓得越低越好

但FP仍然也不希望太高
雖然說預測出可能有延遲診斷而需要留院
只是如同這情境中設定是重大事故發生
例如說地震、火災等等
往往急診室是沒有辦法容納那麼多人
對於那些在現場等候的病患與家屬也可能會火氣大而衝突

因此雖然FP的嚴重性不比FN
但也還是不希望太高

 

 

以上大概是Confusion Matrix的簡單介紹那大家可能會問說
除了2x2之外
有沒有3x3?
當然也可以
它的解讀也就會更複雜一些
端看你想要知道它預測的效率著重在哪一塊
再看怎麼設定會比較合理

 

創作者介紹

B E L L E A Y A 雜七雜八創作小窩

belleaya (愛) 發表在 痞客邦 PIXNET 留言(2) 人氣()


留言列表 (2)

發表留言
  • Kevin Chang
  • 很清楚的應用解釋!! 謝謝!
  • 謝哩!!

    belleaya (愛) 於 2016/07/19 17:42 回覆

  • juanxiting
  • 谢谢解释