1. 程式人生 > >邏輯迴歸Logistic Regression 模型簡介

邏輯迴歸Logistic Regression 模型簡介

邏輯迴歸(Logistic Regression)是機器學習中的一種分類模型,由於演算法的簡單和高效,在實際中應用非常廣泛。本文作為美團機器學習InAction系列中的一篇,主要關注邏輯迴歸演算法的數學模型和引數求解方法,最後也會簡單討論下邏輯迴歸和貝葉斯分類的關係,以及在多分類問題上的推廣。

邏輯迴歸

問題

實際工作中,我們可能會遇到如下問題:

  1. 預測一個使用者是否點選特定的商品
  2. 判斷使用者的性別
  3. 預測使用者是否會購買給定的品類
  4. 判斷一條評論是正面的還是負面的

這些都可以看做是分類問題,更準確地,都可以看做是二分類問題。同時,這些問題本身對美團也有很重要的價值,能夠幫助我們更好的瞭解我們的使用者,服務我們的使用者。要解決這些問題,通常會用到一些已有的分類演算法,比如邏輯迴歸,或者支援向量機。它們都屬於有監督的學習,因此在使用這些演算法之前,必須要先收集一批標註好的資料作為訓練集。有些標註可以從log中拿到(使用者的點選,購買),有些可以從使用者填寫的資訊中獲得(性別),也有一些可能需要人工標註(評論情感極性)。另一方面,知道了一個使用者或者一條評論的標籤後,我們還需要知道用什麼樣的特徵去描述我們的資料,對使用者來說,可以從使用者的瀏覽記錄和購買記錄中獲取相應的統計特徵,而對於評論來說,最直接的則是文字特徵。這樣拿到資料的特徵和標籤後,就得到一組訓練資料:

D=(x1,y1),(x2,y2)...(xN,yN)D=(x1,y1),(x2,y2)...(xN,yN)

其中 xixi 是一個 mm 維的向量,xi=[xi1,xi2,...,xim]xi=[x1i,x2i,...,xmi] ,yy 在 {0, 1} 中取值。(本文用{1,0}表示正例和負例,後文沿用此定義。)

我們的問題可以簡化為,如何找到這樣一個決策函式y=f(x)y∗=f(x),它在未知資料集上能有足夠好的表現。至於如何衡量一個二分類模型的好壞,我們可以用分類錯誤率這樣的指標:Err=1N1[y=y]Err=1N∑1[y∗=y] 。也可以用準確率,召回率,AUC等指標來衡量。

值得一提的是,模型效果往往和所用特徵密切相關。特徵工程在任何一個實用的機器學習系統中都是必不可少的,機器學習InAction系列已有一篇文章中對此做了詳細的介紹,本文不再詳細展開。

模型

sigmoid 函式

在介紹邏輯迴歸模型之前,我們先引入sigmoid函式,其數學形式是:

g(x)=11+exg(x)=11+e−x

對應的函式曲線如下圖所示:


從上圖可以看到sigmoid函式是一個s形的曲線,它的取值在[0, 1]之間,在遠離0的地方函式的值會很快接近0/1。這個性質使我們能夠以概率的方式來解釋(後邊延伸部分會簡單討論為什麼用該函式做概率建模是合理的)。

決策函式

一個機器學習的模型,實際上是把決策函式限定在某一組條件下,這組限定條件就決定了模型的假設空間。當然,我們還希望這組限定條件簡單而合理。而邏輯迴歸模型所做的假設是:

P(y=1|x;θ)=g(θTx)=11+eθTxP(y=1|x;θ)=g(θTx)=11+e−θT∗x

這裡的 g(h)g(h) 是上邊提到的 sigmoid 函式,相應的決策函式為:

y=1,ifP(y=1|x)>0.5y∗=1,ifP(y=1|x)>0.5

選擇0.5作為閾值是一個一般的做法,實際應用時特定的情況可以選擇不同閾值,如果對正例的判別準確性要求高,可以選擇閾值大一些,對正例的召回要求高,則可以選擇閾值小一些。

引數求解

模型的數學形式確定後,剩下就是如何去求解模型中的引數。統計學中常用的一種方法是最大似然估計,即找到一組引數,使得在這組引數下,我們的資料的似然度(概率)越大。在邏輯迴歸模型中,似然度可表示為:

L(θ)=P(D|θ)=P(y|x;θ)