隨機梯度下降的邏輯回歸算法(SGDLR)


由於第一次實驗的實驗報告不在這台機器,先寫這一算法吧。

SGDLR(the Stochastic Gradient Descent for Logistic Regression),要講解這一算法,首先要把名字拆為幾塊。

1 隨機   2 梯度下降   3邏輯回歸

先貼一篇文章:http://blog.csdn.net/zouxy09/article/details/20319673

這篇文章中解釋的還不錯。

其實這一算法,通俗來講是這樣子的:

1、手中肯定有很多帶有label標記的數據,這是訓練集。

2、我們期望能夠建立一個帶參數的式子,來計算某種情況出現的概率,以便於后面預測測試集的類別的時候,計算它在每一類的概率,取概率大的為自己的類。

3、由於sigmoid函數的優勢:連續,光滑,嚴格單調,關於(0,0.5)中心對稱,形如下圖,

sigmoid函數詳解 - lili - 做好自己,莫管他人

  公式①

利用下面這個式子變換得到:

所以我們只需要計算出參數的值,就可以用公式①計算概率。

4、所有在訓練集中出現的樣本,已經真實存在了,所以它們帶入計算出的概率應該是最大的,理想情況為1。根據這一特征來計算參數值。

5、式子並不是一個線性可解的,需要使用極大似然,這一算法不再贅述請自行谷歌。但是后來發現求參數的偏導數的時候,導數為0線性不可解,這時候就要用到梯度下降的算法。

6、所謂梯度下降的算法,事實上是從一個起點,一步步的試探,來回震盪,直到找到一個最低點。迭代公式如下:(這里的lamda是步長,自己設定,參數的初值也是自己設定)

普通的梯度下降需要每次都用所有樣本加和,然后迭代到收斂。

7、那么隨機梯度下降就是在普通的情況下,每次只迭代一個樣本(注意:這個樣本必須是隨機抽的,如果有偏向,最后的結果會很難看),直到收斂。

8、利用以上的迭代公式可以得到參數的值。

9、如果存在多個分類,那么可以訓練多個分類器,一類一個,每一個訓練樣本都只屬於下面兩類:“是這類”和“不是這類”。訓練的時候也是訓練N套參數。

對於一個測試樣本,帶入每一個分類器計算一遍概率,以概率最大的分類有效。

 

該算法依舊可以使用十次交叉驗證檢驗效果。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM