機器學習筆記 邏輯迴歸
邏輯迴歸
邏輯迴歸和線性迴歸其實有不少類似的地方,不同的是邏輯迴歸的$\hat y$是離散的.線性迴歸的$\hat y$是連續的.
邏輯迴歸:擬合樣本資料發生的概率,根據概率進行分類處理.
邏輯迴歸,擬合樣本發生的概率.
$\hat p = f(x)$,之後根據概率的大小對樣本做分類.
通常,將邏輯迴歸用來解決分類問題.作為分類演算法時,解決的是二分類問題.
線上性迴歸一文中,我們知道$\hat y = \theta ^T X_b$,但是這個值的取值範圍是負無窮到正無窮,如果我們想要表達概率的話,希望找到一個函式,取值範圍在0-1.
Sigmoid函式
在一文讀懂svm中,我們也提到過這個函式,是常見核函式的一種.以後在講神經網路的時候也會再看到它.
$\hat p = \sigma(X_b \theta) =\frac 1 {1+e^{-X_b \theta}}$
這個函式,我想不用多解釋了,學過高中數學的應該都能明白其取值在0-1之間.
通過這個函式,我們可以把一個預測值轉化為概率值,所以邏輯迴歸的概率模型可以表達為$$\hat p = \frac 1 {1+e^{-\theta ^T X_b}}$$.
我們做這樣一個假設.
這樣當有一個樣本x過來,我們可以先計算出$\hat p$,再進而得到一個$\hat y$。
那麼此時我們的問題轉變為:怎樣求得這樣的$\theta$,使得我們預測的$\hat y$與真實的y之間誤差最小?
損失函式
由於我們的$\hat y$有兩種情況,是二元的,離散的.所以我們的損失函式也分兩種情況
怎麼理解?當y=1時,p越小,我們越傾向於把$\hat y$歸為0. 這時候錯的越離譜. 當y=0時,p越大,我們越認為$\hat y$歸為1.
符合上述描述的損失函式可以表達如下:
轉換為統一的表達形式:
上面是單個樣本的cost,這樣對一個有著m個樣本的系統來說,損失函式可以表達為:
即:
求損失函式的梯度
推導不困難,但是有點複雜.......
即 ,和我們線上性迴歸中算出的梯度形式很像.
有了梯度,就可以用梯度下降法求出使得$J(\theta)$最小的$\theta$。