code

2017年9月20日 星期三

Applied Machine Learning in Python 13 - 評估multiclass classifier

Confusion Matrix

multiclass confusion matrix如下:


這是數字辨識(所以有10個classes),辨識正確的instance數量都在對角線上。
這個圖適合用heat map來decorate,例如以下SVM RBF kernel:


可以看到每個數字都有不少比例被誤判成4,這讓我們可以猜測是否某些前處裡出錯囉。

永遠製作出confusion matrix來看你的classifier!


如何計算multiclass precision?

首先回憶precision定義 = 偵測出來的positive instance (分母TP+FP) 真正是positive (分子TP) 的占比有多少?
但是在binary classification才有所謂的positive和negative,多個classes怎麼算?

(1) macro-average precision
先算precision  within a class,然後再加總權重:


這三個classes的within-class precision如下:



(2) micro-average precision
這是直接把所有判斷正確者 / 所有instances,是一個一般人認知的概念。


不過這樣的話,某個class的instance佔多數的,會左右此precision。


所以當micro-average << macro-average,代表某個instance佔多數的class錯誤情況嚴重。
當macro-average << micro-average,則代表某個classh錯誤情況嚴重,這就要去查一下。



沒有留言:

張貼留言