logistic regression

  前面的課程學習了線性迴歸,可以用於預測房價這一類的問題。預測房價這種問題是連續的而且值域是[0,+∞]。但是生活中並不僅是有這類問題,還有一類非常常見的問題種類叫做分類問題。比如說對常見的對郵件進行分類是正常郵件還是垃圾郵件等等。在這節課程中學習使用logistic regression來處理這種問題。

  首先在學習logistic regression之前課程通過一個簡單的例子來告訴我們爲什麼線性迴歸不適合分類問題。
例子
在這個例子中將正類的值設爲1,負類的值設爲0,使用中間值0.5作爲判斷界限。我們可以看到使用線性迴歸對異常值非常的敏感,在在第二次線性迴歸的時候因爲異常值出現,導致最終判斷的界限出現了較大的偏差,分類出現問題。因爲線性迴歸其輸出值域是[-∞,+∞],二一個二分類問題其值域爲{0,1}.直接使用線性迴歸的方法去訓練就會出現較大的問題。解決的方法是找到一個函數將線性迴歸輸出的z映射到{0,1}。其中最理想的函數的單位單位階躍函數,表達如下:

f(x)=0,0.5,1,z<0z=0z>0

這樣就將線性迴歸的輸出值映射到了{0,1},但是這個函數不是連續的這樣在後面訓練的時候就非常不好處理。然後前輩先人們希望找到一個和它非常相似的一個函數,同時數學性質要比較好要單調可微,然後他們就找到了非常著名的Sigmoid函數,就和它的首字母一樣函數的形狀就像一個橫過來的Sigmoid函數
sigmoid function

這樣logistic regression的假設函數就確定了是
hθ(x)=g(θTx)

其中g(x) 也就是前面提到的sigmoid函數,中間的θTx 也就是原來的線性迴歸部分。

然後在課程中提到了一個東西叫做Decision Boundary(決策邊界),當函數中的θ確定也就確定了一個邊界,邊界將數據劃分成了兩類。這個邊界在一維中就是一個點,二維就是一條線…… 我們要做的就是從訓練數據找到一個合適的邊界,來將數據分類。具體來說當你確定你想要的hθ(x) ,之後就是需要去尋找一個合適的θ。下面需要要確定一個cost function,來對選擇的θ進行評估。原來線性迴歸用的是最小二乘法,在邏輯迴歸中用的是極大似然的方法。課程老師解釋不用最小二乘法的原因的因爲使用最小二乘法的cost function是非凸的在求最優解的時候很容易進入到局部最小,而最大似然則沒有這個缺點。具體的原因我也還是不是很清楚,等知識充足了理解了再來更新,現在就先用着吧。
cost function
使用最大似然的方法計算代價函數的公式如下所示:

Cost(hθ(x),y)={log(hθ(x))log(1hθ(x))ify=1ify=0

我們可以看到Cost(hθ(x),y) 無論對於y是0還是1,都是當hθ(x) 接近時趨近與0而但遠離時趨近與+∞。
整合合併後最終的cost function的的公式如下:
J(θ)=1m[i=1my(i)loghθ(x(i))+(1y(i)log(1hθ(x(i)))]

知道這個之後我們就可以使用梯度下降的方法來求解最合適的θ值了。方法和前面的線性迴歸是一樣的。其中cost function對θ的偏導如下所示:
θjJ(θ)=i=1m(hθ(x(i))y(i))x(i)j

求得θ之後什麼也就得到了確定的hθ(x) 我們可以將需要分類的數據帶入其中就可以得到這個數據點近似預測概率,在二分類中一般取大於等於0.5預測爲正,小於則爲負。

在使用logistic regression做多分類問題時,每次只看一類作爲正的其他的統統視爲負的,最有n個類別就得到n個logistic迴歸函數。在預測時選擇選擇概率最高的那個作爲預測結果,在這裏我們也看看出輸出結果爲預測概率的好處,如果只是單純判別是或者不是那麼在使用二分類組合成多分類時就很可能出現無法判斷的情況。

原文:http://blog.yinaoxiong.cn/2017/11/05/logistic-regression.html

知識共享許可協議
作品尹傲雄採用知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議進行許可。

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