偏斜類的誤差度量
以預(yù)測(cè)腫瘤是否為惡性為例,我們使用邏輯回歸模型,其假設(shè)函數(shù)hθ(x),當(dāng)y = 1時(shí),我們可以預(yù)測(cè)腫瘤為惡性腫瘤;當(dāng)y = 0時(shí),我們可以預(yù)測(cè)腫瘤為良性腫瘤。
現(xiàn)假設(shè)邏輯回歸模型在測(cè)試集上的誤差為1%,這看似該模型非常完美。但根據(jù)我們的資料發(fā)現(xiàn)在訓(xùn)練集中只有0.5%的患者確為惡性腫瘤,這時(shí)此前的1%的誤差就不是那么完美了。(注:本人對(duì)此處有點(diǎn)不解,測(cè)試集上的誤差為1%,而訓(xùn)練集上我們可以確定有0.5%的患者確為惡性腫瘤,這為什么可以做出判斷在測(cè)試集上的1%的誤差就不是那么完美?)
為了便于理解,我們先看如下代碼:
function y = predictCancer(x)
y = 0; % ignore x!
return
該代碼中,y始終為0,即始終對(duì)腫瘤的預(yù)測(cè)為良性,則在訓(xùn)練集上的誤差為0.5%。邏輯回歸模型與上述代碼對(duì)比,其誤差可能比上述代碼要高,這就能說明邏輯回歸模型比上述代碼要差嗎?
答案當(dāng)然是不能的。對(duì)于正樣本數(shù)量遠(yuǎn)大于負(fù)樣本數(shù)量的情況,我們將其稱為偏斜類。對(duì)于這種情況,分類誤差或精度作為評(píng)估度量就不太適用了。因此,對(duì)于出現(xiàn)偏斜類這種情況,我們引入查準(zhǔn)率(Precision)和召回率(Recall)。
我們?nèi)砸灶A(yù)測(cè)腫瘤是否為惡性腫瘤為例,y = 1表示腫瘤為惡性腫瘤:
對(duì)于查準(zhǔn)率而言,其值越高越好,表示患者為惡性腫瘤的可能性就越大;對(duì)于召回率而言,其值也越高越好,其表示在所有實(shí)際患者為惡性腫瘤的中,模型成功預(yù)測(cè)的百分比。
這對(duì)于上述代碼中y = 0的算法,其召回率為0,從而得知其算法是不好的。
查準(zhǔn)率與召回率之間的權(quán)衡
在邏輯回歸中,我們知道假設(shè)函數(shù)hθ(x)的取值范圍為0~1,當(dāng)hθ(x) ≥ 0.5時(shí),我們可以預(yù)測(cè)y = 1;當(dāng)hθ(x) < 0.5時(shí),我們可以預(yù)測(cè)y = 0。
我們以預(yù)測(cè)腫瘤是否為惡性腫瘤為例,現(xiàn)假設(shè)我們只有在非常確定的情況下,我們才能將腫瘤預(yù)測(cè)為惡性腫瘤,即y = 1。
此時(shí),我們將臨界點(diǎn)(Threshold)修改為0.7,即當(dāng)hθ(x) ≥ 0.7時(shí),我們可以預(yù)測(cè)y = 1;當(dāng)hθ(x) < 0.7時(shí),我們可以預(yù)測(cè)y = 0。這對(duì)情況下,我們的查準(zhǔn)率和召回率會(huì)發(fā)生相應(yīng)變化,即此時(shí)表現(xiàn)為高查準(zhǔn)率和低召回率。
又假設(shè)我們不想對(duì)已患有惡性腫瘤的患者錯(cuò)過治療,因此我們將臨界點(diǎn)修改為0.3,即當(dāng)hθ(x) ≥ 0.3時(shí),我們可以預(yù)測(cè)y = 1;當(dāng)hθ(x) < 0.3時(shí),我們可以預(yù)測(cè)y = 0。此時(shí)查準(zhǔn)率和召回率表現(xiàn)為低查準(zhǔn)率和高召回率。
在不同的臨界點(diǎn)的情況下,查準(zhǔn)率和召回率可有如下函數(shù)圖:
其中,函數(shù)曲線取決于邏輯回歸模型的具體算法。
那么在偏斜類的情況下,我們?nèi)绾胃鶕?jù)查準(zhǔn)率和召回率判斷模型的好壞?這里我們引入F1 值(F1 Score,也可稱為F Score),其公式為:
其中,P表示查準(zhǔn)率,R表示召回率。
對(duì)于上圖,根據(jù)F1 值我們可知Algorithm 1為較好的算法。