機器學習 邏輯迴歸原理詳解

邏輯迴歸

作爲一個傳統算法,可能從名字上來看,邏輯迴歸是一個迴歸算法,但是它卻是一個分類算法,是最基礎的分類算法,當我們做分類算法選擇的時候,先用邏輯迴歸再用複雜的算法,能簡單的先用簡單的,邏輯迴歸的效果往往是最好的。

sigmoid函數

要學習邏輯迴歸,我們需要先認識一個函數,sigmoid函數,它的取值範圍是0到1。
在這裏插入圖片描述
邏輯迴歸之所以是一個分類算法,是因爲它把結果值都映射到0到1的區間上,我們只需要設定一個閾值(比如0.5),當大於0.5的時候,我們取1這個類別,當小於0.5的時候,我們取0這個類別。 下面是sigmoid的函數,
在這裏插入圖片描述
那麼線性迴歸和邏輯迴歸有什麼關係呢,我們可以這樣理解,我們在線性迴歸得到了一個預測值,再將該值映射到sigmoid函數中,這樣就完成了由值到概率的轉換,也就是分類任務,就如下面這樣。
在這裏插入圖片描述
對於一個分類任務,我們做一個基本的假設,當取1這個類別的時候,它的概率是h(x),所以它取0這個類別的時候,概率是1-h(x)。
在這裏插入圖片描述
我們可以把它整合成:
在這裏插入圖片描述
當y取

似然函數

關於似然函數,https://blog.csdn.net/caimouse/article/details/60142085 這篇博文我覺得還不錯,大家可以參考一下,簡單來說,似然函數就是求出什麼參數跟我們的數據組合後恰好是真實值。
而極大似然估計,講的是,什麼樣的概率使得我們的結果越大越好呢,我們要做的就是使他成爲真實值的概率越大越好。下面是最大似然估計(m表示有m個樣本):
在這裏插入圖片描述
上面的式子是累乘,我們要把它變成對數似然函數,因爲logAB=logA+logB,加法問題比乘法問題好求太多了。
在這裏插入圖片描述
這是一個求最大值問題,我們需要轉化爲求最小值問題,我們要引入一個負號。
在這裏插入圖片描述
接下來,我們就要對參數求偏導了,下面是計算過程。(這裏的i是第i個樣本,j是第j個參數
在這裏插入圖片描述
最後,我們就要進行參數更新了,一般這裏1/m可以省略,因爲α本身也是一個常數。
在這裏插入圖片描述
下面一篇文章的3.4是對邏輯迴歸梯度下降向量化有很好的介紹,對於手動實現邏輯迴歸有很好的幫助:
https://blog.csdn.net/ligang_csdn/article/details/53838743
另外,對於多分類問題,我們可以用softmax函數,這裏就不深究,有興趣的可以自己看一看。
在這裏插入圖片描述
到這裏,我們的整個邏輯迴歸過程就都完成了,從sigmoid函數到目標函數再到參數更新,整一個過程,都是挺容易的。計算速度也很快,所以邏輯迴歸真的很好很好用!

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