如何用邏輯回歸做數據分析?

0 評論 13855 瀏覽 34 收藏 11 分鐘

編輯導語:邏輯回歸的本質上是線性回歸,在數據分析中,我們經常會用到線性回歸來進行分析,但如果因素較多時,我們就要用到邏輯回歸的方式進行數據分析;本文作者分享了關于如何用邏輯回歸做數據分析的方法,我們一起來看一下。

今天我們將學習邏輯回歸(logistics regression),由于邏輯回歸是基于線性回歸的特殊變化,故還沒有掌握線性回歸的小伙伴,可以先點擊這里,傳送門:《如何用線性回歸做數據分析?

接下來,我將用最簡單通俗的語言來為大家介紹邏輯回歸模型及其應用。

邏輯回歸是解決二分類問題的監督學習算法,用來估計某個類別的概率;其直接預測值是表示0-1區間概率的數據,基于概率再劃定閾值進行分類,而求解概率的過程就是回歸的過程。

邏輯回歸應用于數據分析的場景主要有三種:

  • 驅動力分析:某個事件發生與否受多個因素所影響,分析不同因素對事件發生驅動力的強弱(驅動力指相關性,不是因果性);
  • 預測:預測事件發生的概率;
  • 分類:適合做多種分類算法、因果分析等的基礎組件;

一、邏輯回歸的原理

下圖是之前講到的線性回歸模型的數據分布,線性回歸是用一條線來擬合自變量和因變量之間的關系,我們可以看到其輸出結果y是連續的。

例如我們想預測不同用戶特征對所使用產品的滿意分,可以采用線性回歸模型;但是如果我們想根據這些因素去判斷用戶的性別,或者是否推薦使用等,之前的線性回歸就不適用了,這時,我們就要用到邏輯回歸進行二分類了。

但是分類模型輸出結果卻需要是離散的,如何把連續型的y轉化為取值范圍0-1的數值呢?

如何用邏輯回歸做數據分析?

答案是,我們只需要將線性回歸模型的結果帶入到sigmoid函數(sigmoid函數就是Logistic函數,故本算法名為邏輯回歸),即可將線性回歸模型轉化為二分類問題,這就是邏輯回歸。我們可以這樣理解:邏輯回歸=線性回歸+sigmoid函數

那么,什么是sigmoid函數呢?如圖,當輸入值趨于無窮小時,函數值趨近于0;輸入值趨于無窮大時,函數值趨近于1。我們將線性回歸結果y帶入到sigmoid函數的x,即下圖橫坐標,就輕而易舉的將連續變量y轉換為了0-1區間的一個概率值。當這個概率值(函數值)小于0.5時,我們將最終結果預測為0,當概率值大于0.5時,我們將預測結果預測為1。

如何用邏輯回歸做數據分析?

以上就是邏輯回歸的基本原理,簡述一下邏輯回歸的算法步驟,可以概括為四步:

  • 將自變量特征輸入
  • 定義自變量的線性組合y,即針對自變量線性回歸
  • 將線性回歸結果y映射到sigmoid函數,生成一個0-1范圍取值的函數概率值
  • 根據概率值,定義閾值(通常為0.5),判定分類結果的正負

如何用邏輯回歸做數據分析?

二、邏輯回歸的目標函數

在明確了邏輯回歸的原理后,我們來看它的目標函數可以用什么來表示?在之前的線性回歸模型中,我們用誤差平方和來做其目標函數,意思就是每個數據點預測值與實際值誤差的平方和。在此,我們將單一數據點的誤差定義為cost函數,即可獲得目標函數的通用形式:

如何用邏輯回歸做數據分析?

我希望每一個我預測出的數據點結果使得它的誤差所帶來的代價越小越好,然后求和所得到的目標函數也是越小越好。在具體模型訓練的時候,我們在假設可以調整模型的一些參數,通過這些參數我們求得每一點的預測值,最終我們調整模型參數使得目標函數可以取到它能取得的最小值。

但是邏輯回歸不可用最小誤差平方和作為其目標函數,原因主要是邏輯回歸的優化方法需要使用梯度下降法,而使用誤差平方和會導致非凸(non-convex)的目標函數,非凸函數會存在多個局部極小值,而多個局部極小值不利于用梯度下降法找到全局的最小損失值。

如何用邏輯回歸做數據分析?

那么邏輯回歸用什么來表示誤差呢?如果y表示樣本的真實標簽,即0或者1,f(x)表示預測結果是0或者1的概率,f(x)的取值在區間[0,1]。

邏輯回歸的cost函數如下,我們如何理解這個公式呢?

如何用邏輯回歸做數據分析?

當真實標簽為正時,即y= 1,Cost函數=-log?(f(x)), 預測值越接近于1,說明預測越準確,則損失函數趨于0。

如何用邏輯回歸做數據分析?

當真實標簽為負時,即y= 0,Cost函數=-log?(1-f(x)),預測值越接近于0,說明預測越準確,則損失函數趨于0。

如何用邏輯回歸做數據分析?

將邏輯回歸的cost函數簡化,即得出:

如何用邏輯回歸做數據分析?

將邏輯回歸cost函數帶入目標函數通用形式,即可形成邏輯回歸最終的目標函數:

如何用邏輯回歸做數據分析?

三、邏輯回歸python實現

鳶尾花下有三個亞屬,分別是山鳶尾(setosa),變色鳶尾(versicolor)和維吉尼亞鳶尾(virginica),據此可將鳶尾屬花分為以上三類。

本案例根據花萼的長度和寬度,花瓣的長度和寬度,采用邏輯回歸建立分類模型,對鳶尾屬花進行分類。

1)導入包及訓練數據集

如何用邏輯回歸做數據分析?

2)觀測多特征數據點分布

通過觀察特征分布,發現山鳶尾(藍色)與其他兩類花能夠較好區分,但是變色鳶尾(綠色)和維吉尼亞鳶尾(紅色)相對難以區分。

如何用邏輯回歸做數據分析?

3)數據清洗、劃分訓練集

將分類變量賦于0/1/2數值,觀測結果標簽分布,發現各種類型鳶尾分布均勻。將特征變量和結果變量進行劃分,并劃分訓練集與測試集。

如何用邏輯回歸做數據分析?

4)訓練分類模型、并進行分類性能評估

如何用邏輯回歸做數據分析?

5)構建混淆矩陣

觀察混淆矩陣,發現我們的分類器只在兩個樣本上預測失誤;這兩個樣本真實類別是2(virginica,維吉尼亞鳶尾),而我們的分類器將其分類成1(versicolor,變色鳶尾)。

如何用邏輯回歸做數據分析?

6)獲取模型系數與截距(模型系數即為影響事件發生的驅動力)

如何用邏輯回歸做數據分析?

以上邏輯回歸就講完了,邏輯回歸是數據分析面試的高頻考點,一定要熟練掌握喔~

 

作者:趙小洛,公眾號:趙小洛洛洛

本文由 @趙小洛 原創發布于人人都是產品經理。未經許可,禁止轉載

題圖來自Unsplash,基于CC0協議

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發揮!