如何用邏輯迴歸做資料分析?

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

如何用邏輯迴歸做資料分析?

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

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