1. 程式人生 > >用最大似然估計求邏輯迴歸引數

用最大似然估計求邏輯迴歸引數

一.最大似然估計

    選擇一個(一組)引數使得實驗結果具有最大概率。

A. 如果分佈是離散型的,其分佈律,是待估計的引數,這裡我們假設為已知量,則:設X1, X2, ... , Xn 是來自於X的樣本,X1,X2,...Xn的聯合分佈律為:

           (1)

     設x1,x2,...xn是X1,X2,..Xn的一個樣本值,則可知X1,..Xn取x1,..,x2的概率,即事件{X1 = x1,...,Xn=xn}發生的概率為:

            (2)

     這裡,因為樣本值是已知的,所以(2)是的函式,稱為樣本的似然函式。

     最大似然估計:已知樣本值x1,...xn,選取一組引數

,使概率達到最大值,此時的為最大估計值。即取使得:

         

     與x1,...,xn有關,記為並稱其為引數的極大似然估計值。

B.如果分佈X是連續型,其概率密度的形式已知,為待估計引數,則事件X1,...Xn的聯合密度為:

          (3)

     設x1,..xn為相應X1,...Xn的一個樣本值,則隨機點(X1,...,Xn)落在(x1,..xn)的領域內的概率近似為:

            (4)

       最大似然估計即為求值,使得(4)的概率最大。由於

               不隨而變,故似然函式為:

                (5)

C. 求最大似然估計引數的步驟:

      (1) 寫出似然函式:

                (6)

               這裡,n為樣本數量,似然函式表示n個樣本(事件)同時發生的概率。

         (2) 對似然函式取對數:

                

          (3) 將對數似然函式對各引數求偏導數並令其為0,得到對數似然方程組。

          (4) 從方程組中解出各個引數。

D. 舉例:

        設;為未知引數,x1,...xn為來自X的一個樣本值。求的極大似然估計值。

       解:X的概率密度為:

             

           似然函式為:

            

            

            令  即:

             解得:   帶入解得

二.邏輯迴歸

     邏輯迴歸不是迴歸,而是分類。是從線性迴歸中衍生出來的分類策略。當y值為只有兩個值時(比如0,1),線性迴歸不能很好的擬合時,用邏輯迴歸來對其進行二值分類。

     這裡邏輯函式(S型函式)為:

       (7)

     於是,可得估計函式:

         (8)

      這裡,我們的目的是求出一組值,使得這組可以很好的模擬出訓練樣本的類值。

      由於二值分類很像二項分佈,我們把單一樣本的類值假設為發生概率,則:

            (9)

       可以寫成概率一般式:

              (10)

       由最大似然估計原理,我們可以通過m個訓練樣本值,來估計出值,使得似然函式值最大:

          (11)

        這裡,為m個訓練樣本同時發生的概率。對求log,得:

           (12)

         我們用隨機梯度上升法,求使最大化時的值,迭代函式為:

              (13)

         這裡對每個分量進行求導,得:

           (14)

         於是,隨機梯度上升法迭代演算法為:

         repeat until convergence{

               for i = 1 to m{

                              (15)

               }

         }

思考:

      我們求最大似然函式引數的立足點是步驟C,即求出每個引數方向上的偏導數,並讓偏導數為0,最後求解此方程組。由於中引數數量的不確定,考慮到可能引數數量很大,此時直接求解方程組的解變的很困難。於是,我們用隨機梯度上升法,求解方程組的值。

備註:

        (a) 公式(14)的化簡基於g(z)導函式,如下:

                 (16)

       (b) 下圖為邏輯函式g(z)的分佈圖: