《機器學習(周志華)》筆記--線性模型(3)--邏輯回歸思想、概率計算、sigmoid 函數、邏輯回歸的損失函數計算


四、邏輯回歸

  邏輯回歸是屬於機器學習里面的監督學習,它是以回歸的思想來解決分類問題的一種非常經典的二分類分類器。由於其訓練后的參數有較強的可解釋性,在諸多領域中,邏輯回歸通常用作baseline模型,以方便后期更好的挖掘業務相關信息或提升模型性能。

1、邏輯回歸思想

  當一看到“回歸”這兩個字,可能會認為邏輯回歸是一種解決回歸問題的算法,然而邏輯回歸是通過回歸的思想來解決二分類問題的算法。

  邏輯回歸的基本思想將樣本所屬正例的概率作為模型的輸出,根據此概率值對樣本的類別進行預測

                                             

  解釋說明:邏輯回歸是將樣本特征和樣本所屬類別的概率聯系在一起,假設現在已經訓練好了一個邏輯回歸的模型為 f(x) ,模型的輸出是樣本 x 的標簽是 1 的概率,則該模型可以表示。若得到了樣本 x 屬於標簽 1 的概率后,很自然的就能想到當 時 x 屬於標簽 1 ,否則屬於標簽 0 。所以就有:

                                                          

  (其中 為樣本 x 根據模型預測出的標簽結果,標簽 0 和標簽 1 所代表的含義是根據業務決定的,比如在癌細胞識別中可以使 0 代表良性腫瘤, 1 代表惡性腫瘤)。

  由於概率是 0 到 1 的實數,所以邏輯回歸若只需要計算出樣本所屬標簽的概率就是一種回歸算法,若需要計算出樣本所屬標簽,則就是一種二分類算法。

 2、概率計算

  那么邏輯回歸中樣本所屬標簽的概率怎樣計算呢?

分析:

  線性回歸輸出為的值域是(-∞,+∞)

  概率的值域是(0,1)

  關鍵:找到一個函數σ將線性回歸得到的(-∞,+∞)的實數轉換成(0,1)的概率值。

   邏輯回歸中樣本所屬標簽的概率其實和線性回歸有關系,學習了線性回歸的同學肯定知道線性回歸無非就是訓練出一組參數b 來擬合樣本數據,線性回歸的輸出為。不過的值域是 (,+) ,如果能夠將值域為 (,+) 的實數轉換成 (0,1) 的概率值的話問題就解決了。要解決這個問題很自然地就能想到將線性回歸的輸出作為輸入,輸入到另一個函數中,這個函數能夠進行轉換工作,假設函數為 σ ,轉換后的概率為 ,則邏輯回歸在預測時可以看成

                           

3、sigmoid 函數

       中的σ 其實就是sigmoid函數。

  sigmoid函數的公式為:

                     

  函數曲線:

                 

  從sigmoid函數的圖像可以看出當 t 趨近於 ∞ 時函數值趨近於 0 ,當 t 趨近於 +∞ 時函數值趨近於 1 。可見sigmoid函數的值域是 (0,1) ,滿足我們要將 (,+) 的實數轉換成 (0,1) 的概率值的需求。因此邏輯回歸在預測時可以看成:

            

4、邏輯回歸的損失函數

  (1)為什么需要損失函數?

  訓練邏輯回歸模型的過程其實與之前學習的線性回歸一樣,就是去尋找合適的  和 b 使得模型的預測結果與真實結果盡可能一致。所以就需要一個函數能夠衡量模型擬合程度

的好壞,也就是說當模型擬合誤差越大的時候,函數值應該比較大,反之應該比較小,這就是損失函數。

  (2)邏輯回歸的損失函數計算

  邏輯回歸計算出的樣本所屬類別的概率 ,樣本所屬類別的判定條件為:

                                                       

   很明顯,在預測樣本屬於哪個類別時取決於算出來的 。從另外一個角度來說,假設現在有一個樣本的真實類別為1,模型預測樣本為類別1的概率為0.9的話,就意味着這個模型

認為當前樣本的類別有90%的可能性為1,有10%的可能性為0。所以從這個角度來看,邏輯回歸的損失函數與有關。當然邏輯回歸的損失函數不僅僅與  有關,它還與真實類別有

關。

  ①假設現在有兩種情況:

    情況A:現在有個樣本的真實類別是1,模型預測出來該樣本是類別1的概率是0.7(也就是說類別0的概率為0.3);

    情況B:現在有個樣本的真實類別是1,模型預測出來該樣本是類別1的概率是0.6(也就是說類別0的概率為0.4);

    問題:AB兩種情況哪種情況的誤差更大?

    很顯然,情況B的誤差更大!因為情況A中模型認為樣本是類別1的可能性只有70%,而B有60%。

    結論:當真實類別為1時,概率越大,誤差越小;

  ②假設現在有兩種情況:

    情況A:現在有個樣本的真實類別是0,但是模型預測出來該樣本是類別1的概率是0.7(也就是說類別0的概率為0.3);

    情況B:現在有個樣本的真實類別是0,但是模型預測出來該樣本是類別1的概率是0.6(也就是說類別0的概率為0.4);

    問題:AB兩種情況哪種情況的誤差更大?

    很顯然,情況A的誤差更大!因為情況A中模型認為樣本是類別0的可能性只有30%,而B有40%。

    結論:當真實類別為0時,概率越小,誤差越小。 

  邏輯回歸的損失函數(對數損失函數):

                        

  當樣本的真實類別為1時,上式就變成:

            

  當樣本的真實類別為0時,上式就變成:

               

               

        圖4.4.1 類別為1                                                                                          圖4.4.2  類別為0

  在一般情況下需要計算的是m條樣本數據的平均損失值,所以損失函數的最終形態如下:

                

    其中,表示數據集中樣本的數量,表示數據集中第 個樣本:

  知道了邏輯回歸的損失函數之后,邏輯回歸的訓練流程就很明顯了,就是尋找一組合適的Wb,使得損失值最小。找到這組參數后模型就確定下來了。

 


免責聲明!

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



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