1. 程式人生 > >線性迴歸與邏輯迴歸的區別

線性迴歸與邏輯迴歸的區別

線性迴歸

以經典的預測房價為例,
假設樣本為(X,yiX, y_i),其中X是多維變數(X=(x1,x2...xn)X = (x_1, x_2...x_n)),屬性包括房子大小,使用年限等,y是對應該樣本的房價。
那麼我們就可以得到一個預測房價的假設模型,
hθ(X)=θTXh_\theta(X) = \theta^T X

只要我們求出了引數θ\theta,就完成了模型的求解,可以用求得的模型來預測新的樣本。

Note:這裡可以看出,這裡求出的模型是一個連續函式,即對應樣本的輸入,輸出會有無限可能(可能為負數,可能為0,也可能為正數,既可能為整數,也可能為浮點數)

邏輯迴歸

同樣以經典的預測房價為例,
假設樣本為(X,yiX, y_i),其中X是多維變數(X=(x1,x2...xn)X = (x_1, x_2...x_n)),屬性包括房子大小,使用年限等,不同的是,這裡的y換成了房價是否超過2萬美元,超過為1,不超過則為0。
於是線性迴歸中的假設模型不能適用到這裡了,需要進行適當的修改。
hθ(X)=sigmoid(θTX)h_\theta(X) = sigmoid(\theta^T X)

這裡使用了sigmoid函式對原模型進行修改(在一些教程裡,也有把sigmoid函式叫做邏輯函式的說法),把原模型的輸出規範到了(0, 1)之間。
Note: 這裡可以看出,在使用邏輯迴歸的時候,所預測樣本值的輸出範圍應該是有限的(如0, 1)離散值

這裡可能會有疑問,為什麼不直接用線性迴歸的模型來對這種分類問題進行擬合?

吳恩達的《machine learning》中談到了這點,線性迴歸模型的表達能力有限,如果直接使用線性迴歸,並且使用線性迴歸的平方和作為成本函式,那麼成本函式會變成如下(“non-convex”):
在這裡插入圖片描述
有太多的區域性最優解,如果使用邏輯迴歸並且使用對數損失函式作為成本函式,成本函式才會易於求解(“convex”):
在這裡插入圖片描述

總結

線性迴歸和邏輯迴歸不同的地方有很多,但在我看在,最基本的不同是模型的表示不同,因此導致了所解決問題的能力不同,進而導致了許多的差異。

對這些差異總結如下:

  • 邏輯迴歸引入了sigmoid函式,這是一個非線性函式,增加了模型的表達能力
  • 邏輯迴歸輸出有限離散值,可以用來解決概率問題、分類問題等。
  • 兩者使用的成本函式不同,線性迴歸使用的平方差,邏輯迴歸使用的是對數損失函式(更本質來講,線性迴歸使用最小二乘方法、或梯度下降方法進行成本函式的求解,而邏輯迴歸使用最大似然方法進行求解

Reference