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

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

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

今天我們將學習邏輯迴歸(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協議

版權聲明:本文源自 網絡, 於,由 楠木軒 整理發佈,共 2259 字。

轉載請註明: 如何用邏輯迴歸做數據分析? - 楠木軒