評價分類器的性能

1、準確率–0/1損失
對於一個特定的測試點,損失或者爲0或者爲1,取決於預測是正確還是錯誤的。顯然,這個值越低越好。
不足:

(1)、如何評價這個量不容易,如0.2怎麼樣?
(2)、對於類別數據不平衡的數據,如80%是類別一,20%是類別2,如果我們總 是將對象歸爲類別1,卻也能得到0.2的平均損失。下面介紹一個克服這個問題的方法。

2、敏感性和特異性
假設一個探測疾病的二分類任務,t=0代表健康的人,t=1代表患病的人。如果我們試圖去檢測一種稀有的疾病,那麼0/1損失就是這一種糟糕的主意–診斷所有人都健康就能得到非常低的0/1損失。分析敏感性和特異性這兩個值,是一個更好的主意。要計算敏感性和特異性,需要從分類結果提取4個統計值,他們是:

  • 正確的正例(TP) –本身爲t’=1,被分類爲t=1的對象的數量(患病的人被診斷爲患病)
  • 正確的反例(TN)–本身爲t’=0,被分類爲t=0的對象的數量(健康的人被診斷爲健康)
  • 錯誤的正例(FP) –本身爲t’=0,被分類爲t=1的對象的數量(健康的人被診斷爲患病)
  • 錯誤的反例(FN)–本身爲t’=1,被分類爲t=0的對象的數量(患病的人被診斷爲健康)

敏感性

Se=TP/(TP+FN)

特異性

Sp=TN/(TN+FP)

兩個值都位於0到1之間。
敏感性是被正確診斷爲患病的人(TP)與所有患病人(TP+FN)的比。
特異性是被正確診斷爲健康的人(TN)與所有健康人(TN+FP)的比。

對於稀有疾病的例子,如果我們判斷所有人都健康,那麼我們得到的敏感性將是1,但是特異性卻是0。理想情況下我們希望Se=Sp=1.這對於所有的應用不一定適合,我們需要定義如何最優化敏感性和特異性的值。例如,Sp=0.9、Se=0.8和Sp=0.8、Se=0.9哪個更好?這個答案依賴於問題。在我們稀有疾病診斷中,我們不希望漏診任何一個患病的人,但可以容忍將健康的人診斷爲患病。由此,我們可能希望減小Sp,從而提高Se。

3、ROC曲線
在許多分類算法中,我麼都提供一個實數值的輸出,從而根據閾值來進行分類。例如,在貝葉斯分類器(二值)和邏輯迴歸中,我們提供我們提供P(Tnew=1|xnew,X,t)–值位於0和1之間。在SVM中,我們提供了以0爲閾值的函數,對於任何算法,我們都可以使用任意閾值來獲得一個硬分類器。
ROC(接收者操作特徵)曲線讓我們可以觀察隨着閾值的改變,性能如何變化由一系列閾值計算得到敏感性和特異性,描繪了敏感性和特異性。
這裏寫圖片描述
這裏寫圖片描述
我們知道我們想讓Se和Sp儘可能地高,因此曲線越接近左頂點(Se=1,1-Sp=0)越好。如果曲線達到左頂點,說明我們可以選擇一個完美分類數據的閾值。
我們通過計算ROC曲線下方區域(AUC)的面積來評估性能。一個能完美分類數據的分類器應該有大小爲1的AUC。
在大多數應用中,AUC是一個比0/1損失更好的評價性能的方法。缺點是無法擴展到多值分類器,把它應用在多值分類器中的一個方法是以多個二值問題的形式來分析分類器的結果。
4、混淆矩陣
這裏寫圖片描述
5、判別式和產生式分類器
產生式:爲每個類別定義一個模型,然後將新元素指定爲最適合他們的模型。如、貝葉斯分類器。
判別式:定義類別之間的決策邊界。如、SVM和邏輯迴歸。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章