1. 程式人生 > >機器學習中的邏輯迴歸模型簡介

機器學習中的邏輯迴歸模型簡介

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

邏輯迴歸

問題

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

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

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

其中 \(x^i\) 是一個 \(m\) 維的向量,\(x^i = [x_1^i, x_2^i, & , x_m^i]\)\(y\) 在 {0, 1} 中取值。(本文用{1,0}表示正例和負例,後文沿用此定義。)

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

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

模型

sigmoid 函式

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

\(g(x) = \frac{1}{1 + e ^ {-x}}\)

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


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

決策函式

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

\(P(y=1|x;\theta) = g(\theta^T x) = \frac{1}{1 + e ^ {-\theta^T * x}}\)

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

\(y^* = 1, \, \textrm{if} \, P(y=1|x) > 0.5\)

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

引數求解

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

\(L(\theta) = P(D|\theta) = \prod P(y|x;\theta) = \prod g(\theta^T x) ^ y (1-g(\theta^T x))^{1-y}\)

取對數可以得到對數似然度:

\(l(\theta) = \sum {y\log{g(\theta^T x)} + (1-y)\log{(1-g(\theta^T x))}}\)

另一方面,在機器學習領域,我們更經常遇到的是損失函式的概念,其衡量的是模型預測錯誤的程度。常用的損失函式有0-1損失,log損失,hinge損失等。其中log損失在單個數據點上的定義為\(-y\log{p(y|x)}-(1-y)\log{1-p(y|x)}\)

如果取整個資料集上的平均log損失,我們可以得到

\(J(\theta) = -\frac{1}{N} l(\theta)\)

即在邏輯迴歸模型中,我們最大化似然函式和最小化log損失函式實際上是等價的。對於該優化問題,存在多種求解方法,這裡以梯度下降的為例說明。梯度下降(Gradient Descent)又叫作最速梯度下降,是一種迭代求解的方法,通過在每一步選取使目標函式變化最快的一個方向調整引數的值來逼近最優值。基本步驟如下:

  • 選擇下降方向(梯度方向,\(\nabla {J(\theta)}\)
  • 選擇步長,更新引數 \(\theta^i = \theta^{i-1} \alpha^i \nabla {J(\theta^{i-1})}\)
  • 重複以上兩步直到滿足終止條件


其中損失函式的梯度計算方法為:

\( \frac{\partial{J}}{\partial{\theta}} = -\frac{1}{n}\sum_i (y_i y_i^*)x_i + \lambda \theta\)

沿梯度負方向選擇一個較小的步長可以保證損失函式是減小的,另一方面,邏輯迴歸的損失函式是凸函式(加入正則項後是嚴格凸函式),可以保證我們找到的區域性最優值同時是全域性最優。此外,常用的凸優化的方法都可以用於求解該問題。例如共軛梯度下降,牛頓法,LBFGS等。

分類邊界

知道如何求解引數後,我們來看一下模型得到的最後結果是什麼樣的。很容易可以從sigmoid函式看出,當\(\theta^T x > 0 \) 時,\(y = 1\),否則 \(y = 0\)\(\theta^T x = 0 \) 是模型隱含的分類平面(在高維空間中,我們說是超平面)。所以說邏輯迴歸本質上是一個線性模型,但是,這不意味著只有線性可分的資料能通過LR求解,實際上,我們可以通過特徵變換的方式把低維空間轉換到高維空間,而在低維空間不可分的資料,到高維空間中線性可分的機率會高一些。下面兩個圖的對比說明了線性分類曲線和非線性分類曲線(通過特徵對映)。

 

左圖是一個線性可分的資料集,右圖在原始空間中線性不可分,但是在特徵轉換 \([x_1, x_2] => [x_1, x_2, x_1^2, x_2^2, x_1x_2]\) 後的空間是線性可分的,對應的原始空間中分類邊界為一條類橢圓曲線。

正則化

當模型的引數過多時,很容易遇到過擬合的問題。這時就需要有一種方法來控制模型的複雜度,典型的做法在優化目標中加入正則項,通過懲罰過大的引數來防止過擬合:

\(J(\theta) = -\frac{1}{N}\sum {y\log{g(\theta^T x)} + (1-y)\log{(1-g(\theta^T x))}} +
\lambda \Vert w \Vert_p\)

一般情況下,取\(p=1\)\(p=2\),分別對應L1,L2正則化,兩者的區別可以從下圖中看出來,L1正則化(左圖)傾向於使引數變為0,因此能產生稀疏解。

 

實際應用時,由於我們資料的維度可能非常高,L1正則化因為能產生稀疏解,使用的更為廣泛一些。

延伸

生成模型和判別模型

邏輯迴歸是一種判別模型,表現為直接對條件概率P(y|x)建模,而不關心背後的資料分佈P(x,y)。而高斯貝葉斯模型(Gaussian Naive Bayes)是一種生成模型,先對資料的聯合分佈建模,再通過貝葉斯公式來計算樣本屬於各個類別的後驗概率,即:

\(p(y|x) = \frac{P(x|y)P(y)}{\sum{P(x|y)P(y)}}\)

通常假設P(x|y)是高斯分佈,P(y)是多項式分佈,相應的引數都可以通過最大似然估計得到。如果我們考慮二分類問題,通過簡單的變化可以得到:

如果 \( \sigma_1 = \sigma_0 \),二次項會抵消,我們得到一個簡單的線性關係:

\(\log\frac{P(y=1|x)}{P(y=0|x)} = \theta^T x\)

由上式進一步可以得到:

\(P(y=1|x) = \frac{e^{\theta^T x}}{1+e^{\theta^T x}} = \frac{1}{1+e^{-\theta^T x}} \)

可以看到,這個概率和邏輯迴歸中的形式是一樣的。這種情況下GNB 和 LR 會學習到同一個模型。實際上,在更一般的假設(P(x|y)的分佈屬於指數分佈族)下,我們都可以得到類似的結論。

多分類(softmax)

如果\(y\)不是在[0,1]中取值,而是在\(K\)個類別中取值,這時問題就變為一個多分類問題。有兩種方式可以出處理該類問題:一種是我們對每個類別訓練一個二元分類器(One-vs-all),當\(K\)個類別不是互斥的時候,比如使用者會購買哪種品類,這種方法是合適的。如果\(K\)個類別是互斥的,即 \(y = i\) 的時候意味著 \(y\) 不能取其他的值,比如使用者的年齡段,這種情況下 Softmax 迴歸更合適一些。Softmax 迴歸是直接對邏輯迴歸在多分類的推廣,相應的模型也可以叫做多元邏輯迴歸(Multinomial Logistic Regression)。模型通過 softmax 函式來對概率建模,具體形式如下:

\(P(y=i|x, \theta) = \frac{e^{\theta_i^T x}}{\sum_j^K{e^{\theta_j^T x}}}\)

而決策函式為:\(y^* = \textrm{argmax}_i P(y=i|x,\theta)\)

對應的損失函式為:

\(J(\theta) = -\frac{1}{N} \sum_i^N \sum_j^K {1[y_i=j] \log{\frac{e^{\theta_i^T x}}{\sum {e^{\theta_k^T x}}}}}\)

類似的,我們也可以通過梯度下降或其他高階方法來求解該問題,這裡不再贅述。

應用

本文開始部分提到了幾個在實際中遇到的問題,這裡以預測使用者對品類的購買偏好為例,介紹一下美團是如何用邏輯迴歸解決工作中問題的。該問題可以轉換為預測使用者在未來某個時間段是否會購買某個品類,如果把會購買標記為1,不會購買標記為0,就轉換為一個二分類問題。我們用到的特徵包括使用者在美團的瀏覽,購買等歷史資訊,見下表

類別 特徵
使用者 購買頻次,瀏覽頻次,時間,地理位置 …
品類 銷量,購買使用者,瀏覽使用者 …
交叉 購買頻次,瀏覽頻次,購買間隔 …

其中提取的特徵的時間跨度為30天,標籤為2天。生成的訓練資料大約在7000萬量級(美團一個月有過行為的使用者),我們人工把相似的小品類聚合起來,最後有18個較為典型的品類集合。如果使用者在給定的時間內購買某一品類集合,就作為正例。喲了訓練資料後,使用Spark版的LR演算法對每個品類訓練一個二分類模型,迭代次數設為100次的話模型訓練需要40分鐘左右,平均每個模型2分鐘,測試集上的AUC也大多在0.8以上。訓練好的模型會儲存下來,用於預測在各個品類上的購買概率。預測的結果則會用於推薦等場景。

由於不同品類之間正負例分佈不同,有些品類正負例分佈很不均衡,我們還嘗試了不同的取樣方法,最終目標是提高下單率等線上指標。經過一些引數調優,品類偏好特徵為推薦和排序帶來了超過1%的下單率提升。

此外,由於LR模型的簡單高效,易於實現,可以為後續模型優化提供一個不錯的baseline,我們在排序等服務中也使用了LR模型。

總結

邏輯迴歸的數學模型和求解都相對比較簡潔,實現相對簡單。通過對特徵做離散化和其他對映,邏輯迴歸也可以處理非線性問題,是一個非常強大的分類器。因此在實際應用中,當我們能夠拿到許多低層次的特徵時,可以考慮使用邏輯迴歸來解決我們的問題。

參考資料

  • Trevor Hastie et al. The elements of statistical learning
  • Andrew Ng, CS 229 lecture notes
  • C.M. Bishop, Pattern recognition and machine learning
  • Andrew Ng et al. On discriminative vs. generative classifiers:a comparison of logistic regression and naïve bayes

相關推薦

機器學習邏輯迴歸模型簡介

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

機器學習的概率模型和概率密度估計方法及VAE生成式模型詳解之二(作者簡介

AR aca rtu href beijing cert school start ica Brief Introduction of the AuthorChief Architect at 2Wave Technology Inc. (a startup company

機器學習的概率模型和概率密度估計方法及VAE生成式模型詳解之一(簡介

價值 新書 The aar 生成 syn TE keras 第一章 A Gentle Introduction to Probabilistic Modeling and Density Estimation in Machine LearningAndA Detailed

機器學習的概率模型和概率密度估計方法及VAE生成式模型詳解之五(第3章 之 EM算法)

ado vpd dea bee OS deb -o blog Oz 機器學習中的概率模型和概率密度估計方法及VAE生成式模型詳解之五(第3章 之 EM算法)

機器學習的概率模型和概率密度估計方法及VAE生成式模型詳解之六(第3章 之 VI/VB算法)

dac term http 51cto -s mage 18C watermark BE ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

機器學習的概率模型和概率密度估計方法及VAE生成式模型詳解之七(第4章 之 梯度估算)

.com 概率 roc 生成 詳解 time 學習 style BE ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?機器學習中的概率模型和概率密度估計方法及V

機器學習的概率模型和概率密度估計方法及VAE生成式模型詳解之八(第4章 之 AEVB和VAE)

RM mes 9.png size mar evb DC 機器 DG ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

機器學習的概率模型和概率密度估計方法及VAE生成式模型詳解之九(第5章 總結)

ces mark TP 生成 機器 分享 png ffffff images ? ?機器學習中的概率模型和概率密度估計方法及VAE生成式模型詳解之九(第5章 總結)

機器學習:評價迴歸模型

在sklearn中包含四種評價尺度,分別為mean_squared_error、mean_absolute_error、explained_variance_score 和 r2_score。 1、均方差(mean-squared-error) 2、平均絕對值誤差(mean_absol

吳恩達機器學習邏輯迴歸理論部分

一.特徵函式 對應分類問題,我們先針對二分類問題進行討論,對應計算機而言,分類即將資料按其特徵值不同分為不同的集合,僅對應二分類問題,我們只需考慮分為:正類和負類,為此我們引入特徵函式。 y=1 — 代表二分類中的正類 y=0 — 代表二分類中的反類 這是特殊函式

機器學習入門(二) — 迴歸模型 (理論)

講述了迴歸模型的基本原理和演算法,並結合迴歸介紹了交叉驗證的方法 1 預測房價 1.1 通過相似的房子預測你的房子 2 線性迴歸 2.1 應用線性迴歸模型 那麼哪條線才是最好的呢? 2.2 應用一條線的成本 2.3 預測你的房價 3 加入更高階的因素 3.1 用直線擬合房價或

機器學習_線性迴歸模型

1.線性迴歸 1.1模型 1.1.1目標函式(損失函式、正則)     a.無正則:最小二乘線性迴歸(OLS)     b.L2正則:嶺迴歸(Ridge Regression)     c.L1正則:Lasso 1.1.2概率解釋     最小二乘線性迴歸等價於

機器學習演算法——邏輯迴歸詳解

簡介 邏輯迴歸(Logistic Regression)既是迴歸演算法,也是分類演算法。通常情況下用於解決分類問題。 之前線性迴歸中,迴歸函式 y = Wx + b 中,y實際上就是我們要預測的值,如房價的價格預測。 而線上性迴歸中,我們實際要求的函式為 p =

機器學習之線性迴歸模型

當我們拿到樣本並經過特徵降維後得到 x1、x2 … 低維特徵,經過多項式對映得到線性迴歸的模型假設: 上式 x1、x2 是樣本特徵,如果 y 是現實中房子的價格,那麼 x1、x2 相當於房子的面積、臥室數量等影響房子價格的因素,而 θ0、θ1、θ2 … 是係數

機器學習邏輯迴歸詳細推導

如今機器學習、深度學習可謂炙手可熱,人工智慧也確實開始影響、改變著我們的生活。正因如此,很多同學開始接觸或者學習這方面的知識。機器學習的入門是有難度的,因為它不僅要求你會編碼,還要你熟悉高等數學,比如線性代數,微積分等,除此之外,還要懂統計學。如果你想入門機器學習,那麼一定要好好學習邏輯迴歸。原因如

機器學習---演算法---邏輯迴歸

轉自:https://blog.csdn.net/ustbbsy/article/details/80423294 1 引言    最近做一個專案,準備用邏輯迴歸來把資料壓縮到[-1,1],但最後的預測卻是和標籤類似(或者一樣)的預測。也就是說它的predict的結果

從零開始機器學習003-邏輯迴歸演算法

老師的課程 1.從零開始進行機器學習 2.機器學習數學基礎(根據學生需求不斷更新) 3.機器學習Python基礎 4.最適合程式設計師的方式學習TensorFlow 問:邏輯迴歸是解決迴歸的問題嗎? 答:不是,邏輯迴歸解決的是分類問題。 一、邏輯迴歸概念

機器學習】線性迴歸模型分析

具體原理不講了,線性迴歸模型,代價損失函式 COST是均方誤差,梯度下降方法。 屬性取值。模型的屬性取值設定需要根據每一個引數的取值範圍來確定,將所有的屬性的取值統一正則化normalization,統一規定在0~1的範圍,或者-1~1的範圍內,這樣在進行線性迴歸時不會造成

機器學習迴歸演算法】詳解

關注微信公眾號【Microstrong】,我寫過四年Android程式碼,瞭解前端、熟悉後臺,現在研究方向是機器學習、深度學習!一起來學習,一起來進步,一起來交流吧!迴歸問題:主要用於預測數值型資料,典

機器學習邏輯迴歸基礎知識+程式碼實現

1. 基本概念 邏輯迴歸用於二分類,將對輸入的線性表示對映到0和1之間,輸出為label為1的概率。 優點:實現代價低,可輸出分類概率。適用於資料線性不可分。 缺點:容易欠擬合,分類精度可能不高,且僅限二分類。 使用資料型別:數值型和標稱資料。 邏輯迴歸本質也是線性迴歸,但是