機器學習系統(tǒng)設計(二)

偏斜類的誤差度量

以預測腫瘤是否為惡性為例,我們使用邏輯回歸模型,其假設函數(shù)hθ(x),當y = 1時,我們可以預測腫瘤為惡性腫瘤;當y = 0時,我們可以預測腫瘤為良性腫瘤。

現(xiàn)假設邏輯回歸模型在測試集上的誤差為1%,這看似該模型非常完美。但根據(jù)我們的資料發(fā)現(xiàn)在訓練集中只有0.5%的患者確為惡性腫瘤,這時此前的1%的誤差就不是那么完美了。(注:本人對此處有點不解,測試集上的誤差為1%,而訓練集上我們可以確定有0.5%的患者確為惡性腫瘤,這為什么可以做出判斷在測試集上的1%的誤差就不是那么完美?)

為了便于理解,我們先看如下代碼:

function y = predictCancer(x)
    y = 0;     % ignore x!
return

該代碼中,y始終為0,即始終對腫瘤的預測為良性,則在訓練集上的誤差為0.5%。邏輯回歸模型與上述代碼對比,其誤差可能比上述代碼要高,這就能說明邏輯回歸模型比上述代碼要差嗎?

答案當然是不能的。對于正樣本數(shù)量遠大于負樣本數(shù)量的情況,我們將其稱為偏斜類。對于這種情況,分類誤差或精度作為評估度量就不太適用了。因此,對于出現(xiàn)偏斜類這種情況,我們引入查準率(Precision)和召回率(Recall)。

我們?nèi)砸灶A測腫瘤是否為惡性腫瘤為例,y = 1表示腫瘤為惡性腫瘤:

對于查準率而言,其值越高越好,表示患者為惡性腫瘤的可能性就越大;對于召回率而言,其值也越高越好,其表示在所有實際患者為惡性腫瘤的中,模型成功預測的百分比。

這對于上述代碼中y = 0的算法,其召回率為0,從而得知其算法是不好的。

查準率與召回率之間的權(quán)衡

在邏輯回歸中,我們知道假設函數(shù)hθ(x)的取值范圍為0~1,當hθ(x) ≥ 0.5時,我們可以預測y = 1;當hθ(x) < 0.5時,我們可以預測y = 0。

我們以預測腫瘤是否為惡性腫瘤為例,現(xiàn)假設我們只有在非常確定的情況下,我們才能將腫瘤預測為惡性腫瘤,即y = 1。

此時,我們將臨界點(Threshold)修改為0.7,即當hθ(x) ≥ 0.7時,我們可以預測y = 1;當hθ(x) < 0.7時,我們可以預測y = 0。這對情況下,我們的查準率和召回率會發(fā)生相應變化,即此時表現(xiàn)為高查準率和低召回率。

又假設我們不想對已患有惡性腫瘤的患者錯過治療,因此我們將臨界點修改為0.3,即當hθ(x) ≥ 0.3時,我們可以預測y = 1;當hθ(x) < 0.3時,我們可以預測y = 0。此時查準率和召回率表現(xiàn)為低查準率和高召回率。

在不同的臨界點的情況下,查準率和召回率可有如下函數(shù)圖:

其中,函數(shù)曲線取決于邏輯回歸模型的具體算法。

那么在偏斜類的情況下,我們?nèi)绾胃鶕?jù)查準率和召回率判斷模型的好壞?這里我們引入F1 值(F1 Score,也可稱為F Score),其公式為:

其中,P表示查準率,R表示召回率。

對于上圖,根據(jù)F1 值我們可知Algorithm 1為較好的算法。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容