1.邏輯回歸(Logistic Regression)
1.1邏輯回歸與線性回歸的關系
邏輯回歸是用來做分類算法的,大家都熟悉線性回歸,一般形式是Y=aX+b,y的取值范圍是[-∞, +∞],有這么多取值,怎么進行分類呢?不用擔心,偉大的數學家已經為我們找到了一個方法。
首先我們先來看一個函數,這個函數叫做Sigmoid函數:
函數中t無論取什么值,其結果都在[0,-1]的區間內,回想一下,一個分類問題就有兩種答案,一種是“是”,一種是“否”,那0對應着“否”,1對應着“是”,那又有人問了,你這不是[0,1]的區間嗎,怎么會只有0和1呢?這個問題問得好,我們假設分類的閾值是0.5,那么超過0.5的歸為1分類,低於0.5的歸為0分類,閾值是可以自己設定的。
好了,接下來我們把aX+b帶入t中就得到了我們的邏輯回歸的一般模型方程:
結果P也可以理解為概率,換句話說概率大於0.5的屬於1分類,概率小於0.5的屬於0分類,這就達到了分類的目的。
1.2損失函數
邏輯回歸的損失函數跟其它的不同,先一睹尊容:
解釋一下,當真實值為1分類時,用第一個方程來表示損失函數;當真實值為0分類時,用第二個方程來表示損失函數,為什么要加上log函數呢?可以試想一下,當真實樣本為1是,但h=0概率,那么log0=∞,這就對模型最大的懲罰力度;當h=1時,那么log1=0,相當於沒有懲罰,也就是沒有損失,達到最優結果。所以數學家就想出了用log函數來表示損失函數,把上述兩式合並起來就是如下函數,並加上正則化項:
最后按照梯度下降法一樣,求解極小值點,得到想要的模型效果。
1.3多分類問題(one vs rest)
其實我們可以從二分類問題過度到多分類問題,思路步驟如下:
1.將類型class1看作正樣本,其他類型全部看作負樣本,然后我們就可以得到樣本標記類型為該類型的概率p1。
2.然后再將另外類型class2看作正樣本,其他類型全部看作負樣本,同理得到p2。
3.以此循環,我們可以得到該待預測樣本的標記類型分別為類型class i時的概率pi,最后我們取pi中最大的那個概率對應的樣本標記類型作為我們的待預測樣本類型。
總之還是以二分類來依次划分,並求出概率結果。
1.4邏輯回歸(LR)的一些經驗
-
模型本身並沒有好壞之分。
-
LR能以概率的形式輸出結果,而非只是0,1判定。
-
LR的可解釋性強,可控度高(你要給老板講的嘛…)。
-
訓練快,feature engineering之后效果贊。
-
因為結果是概率,可以做ranking model。
1.5LR的應用
-
CTR預估/推薦系統的learning to rank/各種分類場景。
-
某搜索引擎廠的廣告CTR預估基線版是LR。
-
某電商搜索排序/廣告CTR預估基線版是LR。
-
某電商的購物搭配推薦用了大量LR。
-
某現在一天廣告賺1000w+的新聞app排序基線是LR。
1.6Python代碼實現
尋覓互聯網,少有機器學習通俗易懂之算法講解、案例等,項目立於這一問題之上,整理一份基本算法講解+案例於文檔,供大家學習之。通俗易懂之文章亦不可以面概全,但凡有不正確或爭議之處,望告知,自當不吝賜教!
.
.
.
.
歡迎添加微信交流!請備注“機器學習”。