邏輯回歸算法的原理及實現(LR)


 

邏輯回歸(Logistic Regression, LR)又稱為邏輯回歸分析,是分類和預測算法中的一種。通過歷史數據的表現對未來結果發生的概率進行預測。例如,我們可以將購買的概率設置為因變量,將用戶的特征屬性,例如性別,年齡,注冊時間等設置為自變量。根據特征屬性預測購買的概率。邏輯回歸與回歸分析有很多相似之處,在開始介紹邏輯回歸之前我們先來看下回歸分析。

37816_bf4c_17

回歸分析用來描述自變量x和因變量Y之間的關系,或者說自變量X對因變量Y的影響程度,並對因變量Y進行預測。其中因變量是我們希望獲得的結果,自變量是影響結果的潛在因素,自變量可以有一個,也可以有多個。一個自變量的叫做一元回歸分析,超過一個自變量的叫做多元回歸分析。下面是一組廣告費用和曝光次數的數據,費用和曝光次數一一對應。其中曝光次數是我們希望知道的結果,費用是影響曝光次數的因素,我們將費用設置為自變量X,將曝光次數設置為因變量Y,通過一元線性回歸方程和判定系數可以發現費用(X)對曝光次數(Y)的影響。

一元回歸原始數據表

以下為一元回歸線性方式,其中y是因變量,X是自變量,我們只需求出截距b0和斜率b1就可以獲得費用和曝光次數之間的關系,並對曝光次數進行預測。這里我們使用最小二乘法來計算截距b0和斜率b1。最小二乘法通過最小化誤差的平方和尋找數據的最佳函數匹配。

一元回歸

下表中是使用最小二乘法計算回歸方程的一些必要的計算過程。在表中最左側的兩列分別為自變量X和因變量Y,我們首先計算出自變量和因變量的均值,然后計算每一個觀測值與均值的差,以及用於計算回歸方程斜率b1所需的數據。

最小二乘法

根據表中的數據按公式計算出了回歸方程的斜率b1,計算過程如下。斜率表示了自變量和因變量間的關系,斜率為正表示自變量和因變量正相關,斜率為負表示自變量和因變量負相關,斜率為0表示自變量和因變量不相關。

b1公式1

求得斜率b1后,按下面的公式可以求出Y軸的截距b0。

b0公式1

將斜率b1和截距b0代入到回歸方程中,通過這個方程我們可以獲得自變量和因變量的關系,費用每增加1元,曝光次數會增長7437次。以下為回歸方程和圖示。

一元回歸代入

 

費用與曝光次數1

在回歸方程的圖示中,還有一個R平方,這個值叫做判定系數,用來衡量回歸方程是否很好的擬合了樣本的數據。判定系數在0-1之間,值越大說明擬合的越好,換句話說就是自變量對因變量的解釋度越高。判定系數的計算公式為SST=SSR+SSE,其中SST是總平方和,SSR是回歸平方和,SSE是誤差平方和。下表為計算判定系數所需三個指標的一些必要的計算過程。

R平方

根據前面求得的回歸平方和(SSR)和總平方和(SST)求得判定系數為0.94344。

R平方公式1

以上為回歸方程的計算過程,在根據費用預測曝光數量的場景下,我們可以通過回歸方程在已知費用的情況下計算出曝光數量。邏輯回歸與回歸方程相比在線性回歸的基礎上增加了一個邏輯函數。例如通過用戶的屬性和特征來判斷用戶最終是否會進行購買。其中購買的概率是因變量Y,用戶的屬性和特征是自變量X。Y值越大說明用戶購買的概率越大。這里我們使用事件發生的可能性(odds)來表示購買與未購買的比值。

inodds

使用E作為購買事件,P(E)是購買的概率,P(E’)是未購買的概率,Odds(E)是事件E(購買)發生的可能性。

odds

Odds是一個從0到無窮的數字,Odds的值越大,表明事件發生的可能性越大。下面我們要將Odds轉化為0-1之間的概率函數。首先對Odds取自然對數,得到logit方程,logit是一個范圍在負無窮到正無窮的值。

logit1

基於上面的logit方程,獲得以下公式:

logit2

其中使用π替換了公式中的P(E),π=P(E)。根據指數函數和對數規則獲得以下公式:

odds1

並最終獲得邏輯回歸方程:

邏輯回歸公式

下面根據邏輯回歸方程來計算用戶購買的概率,下表是用戶注冊天數和是否購買的數據,其中注冊天數是自變量X,是否購買是自變量Y。我們將購買標記為1,將未購買標記為0。接下來我們將在Excel中通過8個步驟計算出邏輯回歸方程的斜率和截距。並通過方程預測新用戶是否會購買。

一元邏輯回歸數據

  • 第一步,使用Excel的排序功能對原始數據按因變量Y進行排序,將已購買和未購買的數據分開,使得數據特征更加明顯。
  • 第二步,按照Logit方程預設斜率b1和截距b0的值,這里我們將兩個值都預設為0.1。后續再通過Excel求最優解。
  • 第三步,按照logit方程,使用之前預設的斜率和截距值計算出L值。

step1

  • 第四步,將L值取自然對數,
  • 第五步,計算P(X)的值,P(X)為事件發生的可能性(Odds)。具體的計算步驟和過程見下圖。

step2

  • 第六步,計算每個值的對數似然函數估計值(Log-Likelihood)。方法和過程見下圖。
  • 第七步,將對數似然函數值進行匯總。

step3

  • 第八步,使用Excel的規划求解功能,計算最大對數似然函數值。方法和過程見下圖。設置匯總的對數似然函數值LL為最大化的目標,預設的斜率b1和截距b0是可變單元格,取消”使無約束變量為非負數”的選項。進行求解。

規划求解

Excel將自動求出邏輯回歸方程中斜率和截距的最優解,結果如下圖所示。

step4

求得邏輯回歸方程的斜率和截距以后,我們可以將值代入方程,獲得一個注冊天數與購買概率的預測模型,通過這個模型我們可以對不同注冊天數(X)用戶的購買概率(Y)進行預測。以下為計算過程。

step5

  • 第一步,輸入自變量注冊天數(X)的值,這里我們輸入50天。
  • 第二步,將輸入的X值,以及斜率和截距套入Logit方程,求出L值。
  • 第三步,對L值取自然對數。
  • 第四步,求時間發生可能性P(X)的概率值。

注冊天數為50天的用戶購買的概率約為17.60%。

我們將所有注冊天數的值代入到購買概率預測模型中,獲得了一條注冊天數對購買概率影響的曲線。從曲線中可以發現,注冊天數在較低和較高天數的用戶購買概率較為平穩。中間天數用戶的購買概率變化較大。

注冊天數對購買概率的影響

我們繼續在上面的計算結果中增加新的自變量“年齡”。以下是原始數據的截圖。現在有年齡和注冊天數兩個自變量和一個因變量。

多元邏輯回歸數據

依照前面的方法計算斜率和截距的最優解,並獲得邏輯回歸方程,將不同的年齡和注冊天數代入到方程中,獲得了用戶年齡和注冊天數對購買的預測模型。我們通過Excel的三維圖表來繪制年齡和注冊天數對購買概率的影響。

年齡和注冊天數對購買概率的影響

從圖中可以看出,購買概率隨着注冊天數的增加而增長,並且在相同的注冊天數下,年齡較小的用戶購買概率相對較高。



Read more: http://bluewhale.cc/2016-05-18/logistic-regression.html#ixzz5BCMBguRv


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM