GitHub地址(案例代碼加數據)python
邏輯迴歸是用來作分類算法的,你們都熟悉線性迴歸,通常形式是Y=aX+b,y的取值範圍是[-∞, +∞],有這麼多取值,怎麼進行分類呢?不用擔憂,偉大的數學家已經爲咱們找到了一個方法。git
首先咱們先來看一個函數,這個函數叫作Sigmoid函數:github
函數中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分類,這就達到了分類的目的。app
邏輯迴歸的損失函數跟其它的不一樣,先一睹尊容:機器學習
解釋一下,當真實值爲1分類時,用第一個方程來表示損失函數;當真實值爲0分類時,用第二個方程來表示損失函數,爲何要加上log函數呢?能夠試想一下,當真實樣本爲1是,但h=0機率,那麼log0=∞,這就對模型最大的懲罰力度;當h=1時,那麼log1=0,至關於沒有懲罰,也就是沒有損失,達到最優結果。因此數學家就想出了用log函數來表示損失函數,把上述兩式合併起來就是以下函數,並加上正則化項:函數
最後按照梯度降低法同樣,求解極小值點,獲得想要的模型效果。學習
其實咱們能夠從二分類問題過分到多分類問題,思路步驟以下:搜索引擎
1.將類型class1看做正樣本,其餘類型所有看做負樣本,而後咱們就能夠獲得樣本標記類型爲該類型的機率p1。
2.而後再將另外類型class2看做正樣本,其餘類型所有看做負樣本,同理獲得p2。
3.以此循環,咱們能夠獲得該待預測樣本的標記類型分別爲類型class i時的機率pi,最後咱們取pi中最大的那個機率對應的樣本標記類型做爲咱們的待預測樣本類型。
總之仍是以二分類來依次劃分,並求出機率結果。
模型自己並無好壞之分。
LR能以機率的形式輸出結果,而非只是0,1斷定。
LR的可解釋性強,可控度高(你要給老闆講的嘛…)。
訓練快,feature engineering以後效果贊。
由於結果是機率,能夠作ranking model。
CTR預估/推薦系統的learning to rank/各類分類場景。
某搜索引擎廠的廣告CTR預估基線版是LR。
某電商搜索排序/廣告CTR預估基線版是LR。
某電商的購物搭配推薦用了大量LR。
某如今一天廣告賺1000w+的新聞app排序基線是LR。
尋覓互聯網,少有機器學習通俗易懂之算法講解、案例等,項目立於這一問題之上,整理一份基本算法講解+案例於文檔,供你們學習之。通俗易懂之文章亦不能夠面概全,但凡是有不正確或爭議之處,望告知,自當不吝賜教!
.
.
.
.
歡迎添加微信交流!請備註「機器學習」。