前面的課程學習了線性迴歸,可以用於預測房價這一類的問題。預測房價這種問題是連續的而且值域是[0,+∞]。但是生活中並不僅是有這類問題,還有一類非常常見的問題種類叫做分類問題。比如說對常見的對郵件進行分類是正常郵件還是垃圾郵件等等。在這節課程中學習使用logistic regression來處理這種問題。
首先在學習logistic regression之前課程通過一個簡單的例子來告訴我們爲什麼線性迴歸不適合分類問題。
在這個例子中將正類的值設爲1,負類的值設爲0,使用中間值0.5作爲判斷界限。我們可以看到使用線性迴歸對異常值非常的敏感,在在第二次線性迴歸的時候因爲異常值出現,導致最終判斷的界限出現了較大的偏差,分類出現問題。因爲線性迴歸其輸出值域是[-∞,+∞],二一個二分類問題其值域爲{0,1}.直接使用線性迴歸的方法去訓練就會出現較大的問題。解決的方法是找到一個函數將線性迴歸輸出的z映射到{0,1}。其中最理想的函數的單位單位階躍函數,表達如下:
這樣就將線性迴歸的輸出值映射到了{0,1},但是這個函數不是連續的這樣在後面訓練的時候就非常不好處理。然後前輩先人們希望找到一個和它非常相似的一個函數,同時數學性質要比較好要單調可微,然後他們就找到了非常著名的Sigmoid函數,就和它的首字母一樣函數的形狀就像一個橫過來的Sigmoid函數
這樣logistic regression的假設函數就確定了是
其中
然後在課程中提到了一個東西叫做Decision Boundary(決策邊界),當函數中的θ確定也就確定了一個邊界,邊界將數據劃分成了兩類。這個邊界在一維中就是一個點,二維就是一條線…… 我們要做的就是從訓練數據找到一個合適的邊界,來將數據分類。具體來說當你確定你想要的
使用最大似然的方法計算代價函數的公式如下所示:
我們可以看到
整合合併後最終的cost function的的公式如下:
知道這個之後我們就可以使用梯度下降的方法來求解最合適的θ值了。方法和前面的線性迴歸是一樣的。其中cost function對θ的偏導如下所示:
求得θ之後什麼也就得到了確定的
在使用logistic regression做多分類問題時,每次只看一類作爲正的其他的統統視爲負的,最有n個類別就得到n個logistic迴歸函數。在預測時選擇選擇概率最高的那個作爲預測結果,在這裏我們也看看出輸出結果爲預測概率的好處,如果只是單純判別是或者不是那麼在使用二分類組合成多分類時就很可能出現無法判斷的情況。
原文:http://blog.yinaoxiong.cn/2017/11/05/logistic-regression.html
本作品由尹傲雄採用知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議進行許可。