1. 程式人生 > >《機器學習實戰》第5章邏輯斯蒂迴歸數學推導

《機器學習實戰》第5章邏輯斯蒂迴歸數學推導

在《機器學習實戰》一書的第5章邏輯斯蒂迴歸的程式碼介紹中,p79中開頭有一句,“此處略去了一個簡單的數學推導”,那麼到底略去了哪一個簡單的數學推導呢?本著要將這個演算法徹底搞明白的態度,筆者在百度上搜了好多資料,終於找到了相關的資料,以供參考。

從上圖中按照邏輯斯蒂迴歸演算法,利用梯度下降法求解其最值的方法,可以看到,最後求得的w如上圖最後更新迭代所示。那麼《機器學習實戰》一書中,通過程式碼理解,得到它的做法是:

正好那一行weights = weights + alpha * dataMatrix.transpose() * error得到的結果即為剛才通過梯度下降法得到的w的更新結果。那麼這就可以理解書中程式碼的含義了。

但是理解了上述書中程式碼的含義,那麼真正的推導是如果做到的呢?且看下文分解:

假設函式為:

1、梯度上升法(引數極大似然估計)

通過檢視《統計學習方法》中的模型引數估計,分類結果為類別0和類別1的概率分別為: 

則似然函式為: 

對數似然函式為:

最大似然估計求使得對數似然函式取最大值時的引數θθ 
對L(θ)L(θ)求導得: 

即為: 

則單個特徵係數的梯度上升法的迭代公式為:

對整個特徵引數向量的梯度上升法的迭代公式為: 

那麼這個式子就是《機器學習實戰》一書p79略去的數學推導部分的內容。