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  不準  False  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?
當然也可以
它的解讀也就會更複雜一些
端看你想要知道它預測的效率著重在哪一塊
再看怎麼設定會比較合理

 

arrow
arrow
    全站熱搜

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