最近看到不少討論linear svm和lr的區別的內容,很多都提到兩者的損失函式的目的都是增加對分類影響較大的資料點的權重,減少與分類關係較小的資料點的權重。下面就是對於這句話的個人理解。
先說svm,比較好理解,在用拉格朗日乘子法得到其「對偶問題」後,因為需要滿足kkt條件,對任意訓練樣本(xi,y
i),總有
拉格朗日乘子 = 0或y
if(x
i) = 1。
若拉格朗日乘子大於0,則必有y
if(x
i) = 1,所對應的樣本點位於最大間隔邊界上,是乙個支援向量;其他情況乘子等於0,則該樣本對損失函式沒有影響。最終模型僅與支援向量有關。——摘自西瓜書124頁。
再說lr,列出最終的損失函式,
l(ω) = ∑ [yi(
ω·xi
)-log(1+exp(
ω·xi
))]首先,對分類關係小的資料點進行理解,首要是分類正確(**值和真實值接近),還有就是該點的概率(p(y=1|x))接近1或者0,表現在logistic分布函式上,就是ω·x
i 接近正無窮或負無窮,如下圖。
當ω·x
i反應在損失函式中,又分為兩種情況,
① yi
=0 , 此時
ω·xi
接近負無窮,yi
(ω·x
i)-log(1+exp(
ω·xi
)) ≈ 0 - log(1+0) = 0 ②yi
=1,此時ω·x
i接近正無窮,yi
(ω·x
i)-log(1+exp(
ω·xi
)) = log(exp(ω·x
i)/(1+exp(
ω·xi
))) ≈ log(1) = 0
這兩種情況下,對損失函式的影響都很小。
然後,對
分類影響較大的資料點進行理解,主要是分類錯誤的資料點(**值與真實值很不一樣)。
前者(分錯類)對損失函式的影響,可以借鑑上面的推導:
① yi
=0, yi
(ω·x
i)-log(1+exp(
ω·xi
)) = 0 -
log(1+exp(
ω·xi
))≈ -ω·x
i,此時
ω·xi
越接近正無窮,損失函式值越小。
② yi
=1,yi(
ω·xi
)-log(1+exp(
ω·xi
)) = log(exp(ω·x
i)/(1+exp(ω·x
i))) , 此時
ω·xi越接近負無窮,損失函式值越小(趨近於log0)。
綜上,分錯得越嚴重對損失函式影響越大,反之,分類越正確,對損失函式影響越小。
此外,還可以看出,在求解lr模型時,幾乎每個資料點都參與了優化,都對模型有影響,而svm只有支援向量起了作用。
如何做資料的分類?
常見的資料分類方式有2種,一種是按照資料所屬的類別進行層次分類,一種是採用關鍵字或者標籤的方式進行分類。到底哪種方式好呢?我想本身並不應該有明顯的界限,如果資料本身就不叫有層次劃分如 生物學中的種 屬 科 目等層次的分類,那麼採用層次分模擬較好 一般而言採用關鍵字的方式比較有彈性,使資料可以隸屬為多...
如何做資料的分類?
常見的資料分類方式有2種,一種是按照資料所屬的類別進行層次分類,一種是採用關鍵字或者標籤的方式進行分類。到底哪種方式好呢?我想本身並不應該有明顯的界限,如果資料本身就不叫有層次劃分如 生物學中的種 屬 科 目等層次的分類,那麼採用層次分模擬較好 一般而言採用關鍵字的方式比較有彈性,使資料可以隸屬為多...
如何做資料的分類?
常見的資料分類方式有2種,一種是按照資料所屬的類別進行層次分類,一種是採用關鍵字或者標籤的方式進行分類。到底哪種方式好呢?我想本身並不應該有明顯的界限,如果資料本身就不叫有層次劃分如 生物學中的種 屬 科 目等層次的分類,那麼採用層次分模擬較好 一般而言採用關鍵字的方式比較有彈性,使資料可以隸屬為多...