1. 程式人生 > >機器學習演算法 之邏輯迴歸以及python實現

機器學習演算法 之邏輯迴歸以及python實現

下面分為兩個部分:
1. 邏輯迴歸的相關原理說明
2. 通過python程式碼來實現一個梯度下降求解邏輯迴歸過程

邏輯迴歸(Logistic Regression)

首先需要說明,邏輯迴歸屬於分類演算法。分類問題和迴歸問題的區別在於,分類問題的輸出是離散的,如(0,1,2,…)而回歸問題的輸出是連續的。

我們將要用來描述這個分類問題的標記如下:

m 代表訓練集中例項的數量

n 代表特徵的數量

x(i) 表示第i個訓練例項,是特徵矩陣的第i行,是一個向量

xj(i) 表示特徵矩陣中第i行的第j個特徵,也就是第i個訓練例項的第j個特徵

y 代表目標變數,也就是輸出變數

(x,y) 代表訓練集中的一個例項

(x(i),y(i)) 代表第i個觀察例項

h 代表學習演算法的函式,或者假設(hypothesis)

假設函式

邏輯迴歸是線上性迴歸的基礎上,轉化而來的。它是用來解決經典的二分類問題
首先說明下,什麼是二分類問題

我們將輸出結果y可能屬於的兩個類分別稱為負向類(negative class)和正向類(positive class),則輸出結果y屬於0,1 ,其中 0 表示負向類,1 表示正向類。

我們將線性迴歸的輸出記為:

z=θTX
我們知道,線性迴歸的輸出結果是實數域中連續的,要想解決二分類問題,這時,我們引入Sigmoid函式
, 對應公式為:g(z)=11+ez
Sigmoid函式
對應影象如上圖,可見,自變數取值為任意實數,值域為[0,1]

經過sigmoid函式,就將任意的輸入對映到了[0,1]區間內,我們線上性迴歸中可以得到一個預測值,再將該值進對映到Sigmoid函式中,這樣就完成了由值到概率的轉換,這就是邏輯迴歸中的分類任務

所以,我們邏輯迴歸的假設函式為:

hθ(x)=g(θTX)=11+eθTX

邏輯迴歸的假設函式hθ(x)即為對應y=1的概率值,即我們可以用下式表示:

P(y=1|x;θ)=hθ(x)
P(y=0|x;θ)=1hθ(x)

一般情況下,我們判定 當hθ(x)>=0.5時,預測y=1,當hθ(x)<0.5時,預測y=0

目標函式

將上述概率進行整合,我們得出:

P(y|x;θ)=(hθ(x))y(1hθ(x))1y 其中,y屬於0,1
由於每個樣本最後得出的概率值都是獨立的,所以,對於所有樣本來說,我們可以得到對應似然函式為: