邏輯回歸LR模型的總結

“邏輯回歸假設數據服從伯努利分布,通過極大化似然函數的方法,運用梯度下降來求解參數,來達到將數據二分類的目的”

上面這句話是對邏輯回歸的一個高度的概括,下面將詳細的說一下這句話的含義。

一、邏輯回歸的假設

邏輯回歸有兩個假設:

  • 假設一:假設數據服從伯努利分布(0-1分布、拋硬幣)。其假設hθ(x)是樣本為正類的概率,1-hθ(x)是樣本為負類的概率。該模型可以表示為:


  • 假設二:假設樣本為正類的概率p 為:


    image.png

    通過sigmod函數將值映射到0-1之間。

  • 所以最終LR模型為:


    image.png
二、邏輯回歸的損失函數

在邏輯回歸中,最常用的是代價函數是交叉熵(Cross Entropy)


image.png
三、邏輯回歸的求解方法

如何求損失函數的最優解呢?(注意損失函數指的是單個樣本的損失,成本函數是全部樣本的預測值和實際值之間的誤差的均值)

交差熵是一個凸函數,所以依然可以用梯度下降法求解(傳統方法)
通過上述過程可以得到一組最優的系數w,它確定了不同類別數據之間的分割線。

四、邏輯回歸的目的

該函數的目的便是將數據二分類,提高準確率。

五、邏輯回歸如何分類

邏輯回歸作為一個回歸(也就是y值是連續的),如何應用到分類上去呢。y值確實是一個連續的變量。邏輯回歸的做法是劃定一個閾值,y值大于這個閾值的是一類,y值小于這個閾值的是另外一類。閾值具體如何調整根據實際情況選擇。一般會選擇0.5做為閾值來劃分。

六、對邏輯回歸的進一步提問
1.邏輯回歸在訓練的過程當中,如果有很多的特征高度相關或者說有一個特征重復了100遍,會造成怎樣的影響?
  • 先說結論,如果在損失函數最終收斂的情況下,其實就算有很多特征高度相關也不會影響分類器的效果。
  • 但是對特征本身來說的話,假設只有一個特征,在不考慮采樣的情況下,你現在將它重復100遍。訓練以后完以后,數據還是這么多,但是這個特征本身重復了100遍,實質上將原來的特征分成了100份,每一個特征都是原來特征權重值的百分之一。
  • 如果在隨機采樣的情況下,其實訓練收斂完以后,還是可以認為這100個特征和原來那一個特征扮演的效果一樣,只是可能中間很多特征的值正負相消了。
2.為什么我們還是會在訓練的過程當中將高度相關的特征去掉?
  • 去掉高度相關的特征會讓模型的可解釋性更好
  • 可以大大提高訓練的速度。如果模型當中有很多特征高度相關的話,就算損失函數本身收斂了,但實際上參數是沒有收斂的,這樣會拉低訓練的速度。其次是特征多了,本身就會增大訓練的時間。
七、邏輯回歸的優缺點總結

優點

  • 形式簡單,模型的可解釋性非常好。從特征的權重可以看到不同的特征對最后結果的影響,某個特征的權重值比較高,那么這個特征最后對結果的影響會比較大。
  • 模型效果不錯。在工程上是可以接受的(作為baseline),如果特征工程做的好,效果不會太差,并且特征工程可以大家并行開發,大大加快開發的速度。
  • 訓練速度較快。分類的時候,計算量僅僅只和特征的數目相關。并且邏輯回歸的分布式優化sgd發展比較成熟,訓練的速度可以通過堆機器進一步提高,這樣我們可以在短時間內迭代好幾個版本的模型。
  • 資源占用小,尤其是內存。因為只需要存儲各個維度的特征值,。
  • 方便輸出結果調整。邏輯回歸可以很方便的得到最后的分類結果,因為輸出的是每個樣本的概率分數,我們可以很容易的對這些概率分數進行cutoff,也就是劃分閾值(大于某個閾值的是一類,小于某個閾值的是一類)。

缺點:

  • 準確率并不是很高。因為形式非常的簡單(非常類似線性模型),很難去擬合數據的真實分布。
  • 很難處理數據不平衡的問題。舉個例子:如果我們對于一個正負樣本非常不平衡的問題比如正負樣本比 10000:1.我們把所有樣本都預測為正也能使損失函數的值比較小。但是作為一個分類器,它對正負樣本的區分能力不會很好。
  • 處理非線性數據較麻煩。邏輯回歸在不引入其他方法的情況下,只能處理線性可分的數據,或者進一步說,處理二分類的問題 。
  • 邏輯回歸本身無法篩選特征。有時候,我們會用gbdt來篩選特征,然后再上邏輯回歸。

補充梯度下降知識

一、梯度下降類別

因為就梯度下降本身來看的話就有隨機梯度下降,批梯度下降,small batch 梯度下降三種方式,面試官可能會問這三種方式的優劣以及如何選擇最合適的梯度下降方式。

  • 批梯度下降會獲得全局最優解,缺點是在更新每個參數的時候需要遍歷所有的數據,計算量會很大,并且會有很多的冗余計算,導致的結果是當數據量大的時候,每個參數的更新都會很慢。
  • 隨機梯度下降是以高方差頻繁更新,優點是使得sgd會跳到新的和潛在更好的局部最優解,缺點是使得收斂到局部最優解的過程更加的復雜。
  • 小批量梯度下降結合了sgd和batch gd的優點,每次更新的時候使用n個樣本。減少了參數更新的次數,可以達到更加穩定收斂結果,一般在深度學習當中我們采用這種方法。
二、梯度下降缺點:
  • 第一個是如何對模型選擇合適的學習率。自始至終保持同樣的學習率其實不太合適。因為一開始參數剛剛開始學習的時候,此時的參數和最優解隔的比較遠,需要保持一個較大的學習率盡快逼近最優解。但是學習到后面的時候,參數和最優解已經隔的比較近了,你還保持最初的學習率,容易越過最優點,在最優點附近來回振蕩,通俗一點說,就很容易學過頭了,跑偏了。
  • 第二個是如何對參數選擇合適的學習率。在實踐中,對每個參數都保持的同樣的學習率也是很不合理的。有些參數更新頻繁,那么學習率可以適當小一點。有些參數更新緩慢,那么學習率就應該大一點。
三、如何解決梯度下降的缺點:引入自適應梯度優化法AdaGrad

后續學習理解后在進行更新

參考文獻:# 邏輯回歸的常見面試點總結

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容