Accuracy is not enough
之前定義accuracy:不過實務上光是這個指標是不夠的,因為通常會遇到imblanced classes,也就是對一個classification problem來說,多數data point是某一個class,少數data point屬於其他的class,所以處於非常不平均分布的狀況。
假設1000個data point中,只有一個data是positive class,其他全部是negative class,則一個永遠predict出negative 結果的Dummy classifier 會有99.9%的accuracy!!
所以accuracy是個prediction capability的好指標嗎? 看來不是絕對的,至少對imblanced classes problem來說。
Dummy classifier並不真的去看data,而是採取某種heuristics (e.g. random / constant / ... ) 來決定prediction,這提供了一個比較的基礎,所謂的null metric或是baseline,任何estimator沒有比Dummy好的話,基本上就是沒用的。
Confusion Matrix
之前的筆記有介紹過了。以下是binary classification的confusion matrix:
判斷指標
之前講過accuracy定義如下:
classification errors:
Recall / true positive rate (TPR) / sensitivity / probability of detection
recall的意義是偵測出來的positive instances佔所有positive instances的比例為何?
precision:
precision的意義是你偵測出來的positive instance真正是positive的占比有多少,也就是你對positive 的偵測的精準度有多高?
specificity / false positive rate (FPR):
意義是你把negative判斷成positive佔所有negative samples的比例。
Recall-Precision Tradeoffs
上圖中,decision boundary上方判斷為positive,下方判斷為negative。
precision ~= 0.68,也就是decision boundary上方為真正的positive samples只有68%。
recall ~= 0.87,也就是我們把所有positive samples中的87%都正確判斷為positive。
如果我們調整decision boundary如下:
則precision變成100%了,因為所有判斷成positive的samples 的確100%都是positive。
可是recall降低了 ~= 47%,只有47% positive samples被我們判斷成positive。
如果調整decision boundary變成以下:
可以看到所有positive samples都會被判斷成positive,所以recall = 100%,但是!!! false positive提高了,也就是precision降低成 36%。
recall必須要高的application發生在我們得盡量正確判斷出positive cases,例如醫學偵測。
precision必須要高的application發生使用者很在意false positive的application,例如recommendation / ranking / classification等,主要原因是user會記得小錯而放大這個觀感,而把絕大多數時候的正確當成理所當然。
F score for classifier evaluation
如果需要recall,則beta較大,e.g. 2。
當beta為1的時候,是一個特殊的指標,稱為F1,通常用來檢驗classifier。
沒有留言:
張貼留言