1. 程式人生 > >matlab實現logistic迴歸

matlab實現logistic迴歸

Logistic迴歸是一個線性概率分類器。通過加權矩陣W和偏置向量b實現了引數化。通過將資料點投影到超平面集上來實現分類,其中距離反映資料點的歸屬概率。

其中會用到一個非常重要函式,能夠將資料投影,利用數學語言表述:


這是一個關於點(0,0.5)對稱的奇函式。從這個意義上說來,logistic迴歸與線性迴歸有著許多相似之處。我們可以將線性迴歸中的資料做一下處理,即g(z) = z

線上性迴歸問題中,由於對於應變數y值的取值範圍沒有限定,所確定的分類面為=0。但在實際問題中,常會遇到應變數y只取0,1兩個值的情形。在這種情形下,繼續使用線性迴歸顯然是不適用的。為了實現分類,利用logistic函式或sigmoid函式將分類面投影:


是待估引數,此時函式的取值範圍在(0,1)區間,假設


y是離散型隨機變數,上式是它的分佈律。在具體問題中,當我們訓練出引數theta後,分別計算上述概率,那個的概率大就將待預測樣本劃分到相應的類中。

為了以後分析方便起見,我們將它轉換為如下形式:


上述表示式是將隨機變數的分佈律寫成統一的形式,其中theta是未知引數,需要對其進行估計,(x,y)相當於採自這個分佈的一組樣本,現在根據這些樣本,求未知引數theta的極大似然估計。首先寫出似然函式


現在需要求使得似然函式達到最大值時的引數theta,上述形式不容易求解。因為函式與其對數函式有相同的單調性。我們求它的對數似然


利用梯度下降法求上述函式的極大值點,先求其梯度


最終迭代更新引數的公式為:




下面是logistic迴歸的簡單實現,程式設計的過程與線性迴歸極為相似,只是價值函式和梯度略有不同