Logistic迴歸主要用於二分類。屬於監督學習算法的一種。算法
其具體公式爲:函數
下圖給出了其圖像:學習
當x爲0時,其函數值爲0.5,隨着x的增大,對應的函數值會逼近於1;隨着x的減小,其值會趨於0.當橫座標刻度足夠大時,其看上去會像一個階躍函數。測試
採用該函數進行迴歸時,能夠在每一個特徵上乘以一個迴歸係數,而後把結果相加,總和代入函數中,當函數值大於0.5的被分爲1類,不然分爲0類。優化
那麼,怎麼肯定迴歸係數呢?spa
假設一個數據含有n個特徵值,記爲x1,x2,…,xn,對應的迴歸係數記爲w1,w2,w3,…,wn,那麼咱們能夠以矩陣(向量)的形式來表示:3d
其中:blog
如今咱們須要肯定W列向量中每一個變量的值。變量
假設有P0和P1兩個條件機率:方法
P0表示在當前W、X的狀況下,函數值(咱們記爲y)爲0,即當前數據被分到0類的機率,P1表示被分到1類的機率。
所以咱們獲得機率函數爲:
該函數是指,y爲1時,就只考慮其爲1的機率;y爲0時,只考慮爲0的機率。咱們須要找到合適的W,而後最大化這個機率,儘量使其分類正確。
假定樣本與樣本之間相互獨立,那麼整個樣本集分類正確的機率即爲全部樣本分類正確的機率的乘積(似然估計函數),這裏咱們設總樣本數目爲m:
其中,y(i)表示第i個樣本的分類,X(i)爲第i個樣本的特徵向量。將式(4)代入式(5),得:
咱們經過對該算式取對數ln()進行簡化(對數似然函數):
知足該函數最大的W即爲咱們所要求解的值(最大似然估計值)。
咱們經過用梯度上升法來求其局部極大值(也能夠取負對數採用梯度降低法)。即讓參數W沿着該函數梯度上升的方向變化:
其中,α爲步長,即表示向梯度上升方向移動的距離。
對於函數σ(z),其對z的導數爲:
接下來,咱們對l(W)求偏導:
因爲:
因此有:
所以,最後梯度上升的迭代公式爲:
若是把m個樣例的特徵及其正確分類按行排成矩陣:
其中第i行表示第i個樣例的n個特徵及其分類。
這樣,式13可更改成:
接下來,只須要肯定步長α和適宜的迭代次數便可經過X這一訓練樣本獲得符合要求的W,經過W結合logistic sigmoid函數來估計測試數據的分類。
將對數似然函數乘以一個負係數:
此時可將該式理解爲對數損失函數。
此時須要求使得J(W)最小的W值,採用梯度降低法:
對J(W)求偏導:
所以式17可改成:
將X,Y改寫成矩陣(式14所示),並可將常數1/m省略,則有: