通俗地說邏輯回歸【Logistic regression】算法(一) 邏輯回歸模型原理介紹


在說邏輯回歸前,還是得提一提他的兄弟,線性回歸。在某些地方,邏輯回歸算法和線性回歸算法是類似的。但它和線性回歸最大的不同在於,邏輯回歸是作用是分類的。

還記得之前說的嗎,線性回歸其實就是求出一條擬合空間中所有點的線。邏輯回歸的本質其實也和線性回歸一樣,但它加了一個步驟,邏輯回歸使用sigmoid函數轉換線性回歸的輸出以返回概率值,然后可以將概率值映射到兩個或更多個離散類。

如果給出學生的成績,比較線性回歸和邏輯回歸的不同如下:

  • 線性回歸可以幫助我們以0-100的等級預測學生的測試分數。線性回歸預測是連續的(某個范圍內的數字)。
  • Logistic回歸可以幫助預測學生是否通過。邏輯回歸預測是離散的(僅允許特定值或類別)。我們還可以查看模型分類背后的概率值。

一.從回歸到分類的核心 --Sigmoid Function

之前介紹線性回歸的時候,它的函數是這樣樣子的:

h(x)=θ0 + θ1 * x1 + θ2 * x2 + θ3 * x3 ...

但這樣的函數是沒辦法進行分類的工作的,所以我們要借助一下其他函數,那就是Sigmoid Function。

我們先來看看這個Sigmoid Function長什么樣,Sigmoid Function的數學公式是這樣子的:

Sigmoid函數

如果表示在平面坐標軸上呢,那它長這個樣子。
Sigmoid函數的坐標軸

這個Sigmoid Function可以將線性的值,映射到[0-1]這個范圍中。如果映射結果小於0.5,則認為是負的樣本,如果是大於0.5,則認為是正的樣本。

比方說要對垃圾郵箱進行分類,分垃圾郵箱和正常郵箱。當這個Sigmoid Function的計算出來后,小於0.5,則認為是垃圾郵箱,大於0.5則是非垃圾郵箱。

原先線性回歸的計算公式是這樣的:
線性回歸公式

那么將這個z函數代入到Sigmoid Function中,OK,現在我們就有了一個邏輯回歸的函數了。

邏輯回歸的公式

二.代價函數Cost Function

和線性回歸一樣,邏輯回歸也有代價函數。並且都是通過最小化Cost Function來求得最終解的。

我們先來看單個點的情況,
代價函數

這個代價函數呢,叫做交叉熵,其中y(i)指的是預測的結果,而hθ(xi)指的是xi這個點原本的值。

那么它具體是什么意思呢,為什么叫做交叉熵?我們舉兩個極端的例子看看就明白了:

1.xi原始值hθ=1,預測結果,yi=1的情況

極端情況下的Sigmoid函數1

這個時候,代價函數的加號右邊會被消掉,因為右邊(1-y(i))是0,左邊部分呢,因為hθ(xi)=1,故而log(1)=0。

y(i)log(hθ(xi)) = 1 * log(0) = 0

也就是說,若xi原始值是1,當預測值y=1的時候,代價函數是0的。這個也比較好理解,代價函數為0就是說預測結果和原始結果完全一致的,沒有半點出差錯。

2.計算結果,yi=0,原始值hθ=0

極端情況下的Sigmoid函數2

這次的結果就和上面的反過來了,因為yi=0,所以左邊部分全軍覆沒,來看右邊,

(1-yi) * log(1-hθ(xi)) = 1 * log(0) = 0

因為1-hθ(xi),最終結果還是等於0。

也就是說,這個損失函數,只要原始值與預測結果越相符,損失函數就越大,反之,損失函數就會越小。

以上說的只是一個點的情況,實際的代價函數,是要計算所有點的損失函數的均值,如下所示:

變換的損失函數

三.梯度下降

和線性回歸一樣,邏輯回歸的解法也可以通過梯度下降來進行求解。梯度下降的目的,是為了最小化代價函數Cost function。

要求使用梯度下降,需要先求解偏導數,以下是求導數的一個具體過程:
求導過程

而梯度下降的計算方法也和線性回歸的計算方法是一樣的。只是其中的代價函數,換成了邏輯回歸的代價函數。

其中,α右邊部分對應我們上面對代價函數求偏導的結果。而α是用來控制訓練速率的,這個在線性回歸那里已經有說到,這里就不再介紹了。

最終就是對θj不斷迭代,直到損失函數降到最小,那就可以求出我們要的θ值了。

四.小結

OK,今天介紹了線性回歸和邏輯回歸的區別,同樣都是回歸分析,邏輯回歸能完成分類任何的核心,就算使用了Sigmoid Function。

這里留一個小問題,上面所述的邏輯回歸,通常是僅僅能夠進行二分類,那有沒有辦法來讓邏輯回歸實現多分類呢?

下一次將闡述用邏輯回歸進行多分類,以及正則化相關內容,並介紹sklearn的邏輯回歸參數和用法!!

以上~~


推薦閱讀:
通俗得說線性回歸算法(一)線性回歸初步介紹
通俗得說線性回歸算法(二)線性回歸初步介紹
Scala 函數式編程指南(一) 函數式思想介紹
通俗地說決策樹算法(二)實例解析
大數據存儲的進化史 --從 RAID 到 Hadoop Hdfs
C,java,Python,這些名字背后的江湖!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM