機器學習分享——邏輯迴歸推導以及 numpy 的實現
什麼是邏輯迴歸? 邏輯迴歸就是這樣的一個過程:面對一個迴歸或者分類問題,建立代價函式,然後通過優化方法迭代求解出最優的模型引數,然後測試驗證我們這個求解的模型的好壞。
Logistic 迴歸雖然名字裡帶“迴歸”,但是它實際上是一種分類方法,主要用於兩分類問題(即輸出只有兩種,分別代表兩個類別)
迴歸模型中,y是一個定性變數,比如y=0或1,logistic方法主要應用於研究某些事件發生的概率
Logistic Regression
推導過程
它的表示式是:
可以發現,經過 sigmoid
函式轉換後, 輸出值是在 [0, 1]
之間,可以認為輸出是概率,下面就來詳細的推導:

推導
為了計算方便, 我們只討論二分類.
首先, 邏輯迴歸進行了一個假設, 兩個類別都服從均值不同,方差相同(方便推導)的高斯分佈
高斯分佈是比較容易處理的分佈,根據中心極限定理也知道,最終會收斂於高斯分佈。 從資訊理論的角度上看,當均值和方差已知時(儘管你並不知道確切的均值和方差,但是根據概率論,當樣本量足夠大時,樣本均值和方差以概率1趨向於均值和方差),高斯分佈是熵最大的分佈,為什麼要熵最大?因為最大熵的分佈可以平攤你的風險(同一個值會有兩個點可以取到, 不確定性很大),這就好比不要把雞蛋放到同一個籃子裡,想想二分查詢中,為什麼每次都是選取中間點作為查詢點?就是為了平攤風險(假設方差相等只是為了計算方便)。
風險
其中, 是把樣本預測為0時的風險, 是把樣本預測為1時的風險, 是樣本實際標籤為 j
時,卻把它預測為 i
是所帶來的風險。
我們認為預測正確並不會帶來風險,因此 和 都為0,此外,我們認為當標籤為0而預測為1 和 當標籤為1而預測為0,這兩者所帶來的風險是相等的,因此 和 相等,方便起見,我們記為λ。但在一些領域裡,比如醫學、風控等,這些λ在大多數情況下是不相等的,有時候我們會選擇“寧可錯殺一一千也不能放過一個”;
那麼我們簡化後的表示式:
根據最小化風險的原則,我們通常會選擇風險較小的。
比如:
這就說明了預測為第 0
類的風險小於預測為第 1
類的風險。
可以得到:
就是說明預測第 1
類的概率小於第 0
類的概率。
我們對不等式兩邊分別取對數
根據貝葉斯公式:
我們開始假設過,兩個類別分別服從均值不等,方差相等的高斯分佈,根據高斯分佈的公式有:
高斯分佈
忽略常數項(方差也是相等的)
C
是常熟,可以使用矩陣的表示。
詳細推導
對值取冪,以及等式取等號計算。