【轉載】邏輯迴歸模型的前世此生

它是一個簡單的模型,卻支撐着互聯網新舊巨頭最掙錢的核心模塊;機器學習

它是一個經典的模型  行業內卻不多有人能講清它的前世此生今天;函數

今天,小編和大夥嘮一嘮,《邏輯迴歸的前世此生》。學習

點擊率(CTR)預估問題是各大互聯網公司幾乎都要作的重要問題,是新舊巨頭們掙錢的核心模塊之一。spa

在作CTR預估的工程實踐中,他們都用邏輯迴歸:blog

百度經過CTR預估,篩選出變現能力更強的廣告;淘寶經過CTR預估,篩選出更有可能讓你「大出血」的商品;今日頭條經過CTR預估,讓你上廁所、蹲馬桶時也忍不住刷一刷。資源

雖然在今天,深度學習模型成爲時尚,可是邏輯迴歸模型仍然頑強堅守在第一線,爲何它沒有被替換?由於它足夠簡單卻又足夠有效。線上的系統每每對實時性要求很高,也就是訓練好的模型在線上進行預測時必須快速響應,從這一點上,邏輯迴歸(LR)模型不可替代。深度學習

不只如此,邏輯迴歸模型是一線機器學習工程師最喜歡的模型之一,下面請聽一線機器學習工程師的觀點博客

 

它雖然是備胎,可是很是重要數學

邏輯迴歸(LR)模型在目前的工業界仍然應用很是廣,是最重要的基礎模型。當解決一個工程問題時,若是一開始就上DNN這樣的高級模型,並不明智。  產品

       緣由是:訓練一個複雜的模型的時間成本高,好比一個DNN模型可能得一週甚至更久(訓練過程當中還常常須要調參),在數據和特徵均可能存在瑕疵的狀況下,一開始就用複雜模型並不明智。

      實際上,數據有問題的可能性很是大,好比:噪聲數據是否已經清洗乾淨;樣本不均衡的問題是否嚴重、有沒有處理;實際獲取到的訓練數據每每是經過一些規則獲得的,多是有偏的;甚至在一些多分類問題中,因爲分類標準區分度不夠,致使有些分類的case之間有重疊;

     另外,最開始選擇的特徵也極可能不合理。經過LR模型能夠快速驗證特徵和數據的合理性。   

     這也就是說 雖然你是備胎,可是我離不開你!

從實踐經驗來看,最好的辦法是,首先用LR、GBDT這樣的簡單模型來作一個base模型。而後再在這個基礎上,用高級模型(如DNN、RNN等)進行提升。最後權衡一下 高級模型在效果上的提高幅度和它所帶來的空間佔用和時間成本的增長,若是確實效果提升足夠明顯、並且在存儲和耗時方面的代價在能夠接受的範圍,才使用高級模型。固然啦,模型融合也是很好的思路,好比bagging。

        所以,

備胎也可能會有春天!

 

選模型  不求最複雜  但求最實用

 

市面上的博客和培訓講義,介紹解邏輯迴歸時,彷佛都認爲logistic函數是天生就有的。例如,周志華大大的《機器學習》經典書裏就這樣引入logistic函數:

 

可是,光是怎麼產生的呢?沒有人知道。同理,logistic函數究竟是怎麼獲得的呢?沒有人在意,沒有人介紹。

 可是,我在意!

Logistic模型是1938年Verhulst—Pearl在修正非密度方程時提出來的,他認爲在必定的環境中種羣的增加總存在一個上限,當種羣的數量逐漸向着上限上升時實際增加率就要逐漸地縮小,因此也被稱爲。廣義Logistic曲線能夠模仿一些狀況的人口增加(P)的S形曲線。起初階段大體是指數增加 ;而後隨着人口開始變得飽和,增長變慢;最後,達到成熟時增長中止,因此又叫 sigmoid曲線(S型曲線)。形如:

 

 

好了,背誦完畢,您如今懂了logistic函數爲何是下面的形式了嗎:

下面咱們以「人口預測」問題做爲例子,揭開logistic函數是怎麼來的------》微分方程,揭開logistic函數神祕面紗

1) 最簡單的指數模型

       人口預測對簡單的模型無疑是指數增加模型。咱們設時刻t的人口總量爲x(t),並將x(t)看做連續、可微的函數。記初始時刻(t=0)的人口爲x0。規定人口的增加率爲常數r,即單位時間內x(t)的增量等於r乘以x(t)。咱們考慮t到時間內人口的增量,則有

這是一個咱們比較熟悉的指數增加的函數。當r > 0時,人口將按照指數規律無限制地增加,稱爲指數增加模型。

事實上,這個模型與歐洲19世紀之前的人口增加是很好地吻合的。它做爲短時間模型能夠取得很好的效果,可是長期來看,任何地區的人口不可能無限制地增加。由於土地、水源等天然資源的供應和環境的承載能力是有限的,當人口增長到必定數量時,人口的增加就會慢下來,增加率會變小。爲此,引入了下面的改進模型。

 

2) 考慮資源、環境約束條件下的改進模型

   

對人口的阻滯體如今對r的影響上,表現爲r隨着人口數量的增長而降低.咱們不妨把人口的增加率r表示爲關於人口數量x的函數r(x),顯而易見r(x)爲減函數,因而(2)式可寫爲

這個函數爲何它要長成這樣?他們都不解釋!他們都是壞人!可是如今,你經過咱們這個小案例看到了,原來logistic函數是這樣推導出來的!是否是So easy?

 

邏輯迴歸模型的現實意義

事實上,人口預測問題所使用的logistic模型,能夠用來描述包括人類在內幾乎全部物種在資源約束下的增加規律。

請看下面這段話:

當一個物種遷入到一個新生態系統中後,其數量會發生變化。假設該物種的起始數量小於環境的最大容納量,則數量會增加。該物種在今生態系統中有天敵、食物、空間等資源也不足(非理想環境),則增加函數知足邏輯斯諦方程,圖像呈S形,此方程是描述在資源有限的條件下種羣增加規律的一個最佳數學模型。

咱們能夠設想一下,假設咱們承包了一個魚塘,扔了數量比較少的魚苗進去之後,這個魚塘內魚的條數的變化是否是也會知足logistic模型呢?

其實,不光是物種數量的建模,不少社會、經濟現象均可以藉助於來解釋。好比某互聯網公司推出一款爆款產品之後,這個產品的用戶數可能也會呈現相似的增加規律:剛開始時,因爲產品反響很是好,用戶呈指數級增加,當用戶數到達必定的規模之後,因爲抄襲者增多、競爭對手加大狙擊力度、以及網民總數是有限的,這個產品的用戶數的增加率會逐漸放緩。

別被它的名字所矇蔽

前面咱們講到的人口預測問題,實際上是邏輯迴歸方法應用於解決迴歸問題的一個實例。不過在實際的工業界使用時,邏輯迴歸基本上是用於解決分類問題,好比CTR預估,工業界幾乎沒有人用它來作迴歸問題。這樣就帶來一個讓不少初學者困惑的問題:

咱們明明是拿「邏輯迴歸」來解決分類問題,可是它的名字上爲啥非得帶上「迴歸」二字呢,爲何不叫「邏輯分類(logistic classification)」呢?

做爲好事者,我特地去谷歌了一下,結論是:

No Why!沒有緣由,你們都這麼叫,習慣就好

相關文章
相關標籤/搜索