如何用邏輯回歸做數(shù)據(jù)分析?

趙小洛
0 評論 14145 瀏覽 34 收藏 11 分鐘

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

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

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

邏輯回歸是解決二分類問題的監(jiān)督學(xué)習(xí)算法,用來估計某個類別的概率;其直接預(yù)測值是表示0-1區(qū)間概率的數(shù)據(jù),基于概率再劃定閾值進行分類,而求解概率的過程就是回歸的過程。

邏輯回歸應(yīng)用于數(shù)據(jù)分析的場景主要有三種:

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

一、邏輯回歸的原理

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

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

但是分類模型輸出結(jié)果卻需要是離散的,如何把連續(xù)型的y轉(zhuǎn)化為取值范圍0-1的數(shù)值呢?

如何用邏輯回歸做數(shù)據(jù)分析?

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

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

如何用邏輯回歸做數(shù)據(jù)分析?

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

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

如何用邏輯回歸做數(shù)據(jù)分析?

二、邏輯回歸的目標(biāo)函數(shù)

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

如何用邏輯回歸做數(shù)據(jù)分析?

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

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

如何用邏輯回歸做數(shù)據(jù)分析?

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

邏輯回歸的cost函數(shù)如下,我們?nèi)绾卫斫膺@個公式呢?

如何用邏輯回歸做數(shù)據(jù)分析?

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

如何用邏輯回歸做數(shù)據(jù)分析?

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

如何用邏輯回歸做數(shù)據(jù)分析?

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

如何用邏輯回歸做數(shù)據(jù)分析?

將邏輯回歸cost函數(shù)帶入目標(biāo)函數(shù)通用形式,即可形成邏輯回歸最終的目標(biāo)函數(shù):

如何用邏輯回歸做數(shù)據(jù)分析?

三、邏輯回歸python實現(xiàn)

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

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

1)導(dǎo)入包及訓(xùn)練數(shù)據(jù)集

如何用邏輯回歸做數(shù)據(jù)分析?

2)觀測多特征數(shù)據(jù)點分布

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

如何用邏輯回歸做數(shù)據(jù)分析?

3)數(shù)據(jù)清洗、劃分訓(xùn)練集

將分類變量賦于0/1/2數(shù)值,觀測結(jié)果標(biāo)簽分布,發(fā)現(xiàn)各種類型鳶尾分布均勻。將特征變量和結(jié)果變量進行劃分,并劃分訓(xùn)練集與測試集。

如何用邏輯回歸做數(shù)據(jù)分析?

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

如何用邏輯回歸做數(shù)據(jù)分析?

5)構(gòu)建混淆矩陣

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

如何用邏輯回歸做數(shù)據(jù)分析?

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

如何用邏輯回歸做數(shù)據(jù)分析?

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

 

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

本文由 @趙小洛 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載

題圖來自Unsplash,基于CC0協(xié)議

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發(fā)揮!
专题
11468人已学习12篇文章
本专题的文章分享了情人节的营销思路。
专题
11668人已学习11篇文章
随着互联互通的发展,虚拟与现实之间的距离在逐渐缩小,未来数字设计也在发生着变化。本专题的文章分享了数字未来设计趋势。
专题
45351人已学习12篇文章
产品经理和运营都要懂一点的推荐算法基础和进阶知识
专题
30977人已学习14篇文章
不管你是产品、运营还是文案,你都需要懂用户思维。
专题
13218人已学习12篇文章
本专题的文章分享了金融产品经理需要知道的金融基础知识和产品观。
专题
15403人已学习14篇文章
痛点是什么?为什么用户会有痛点?如何抓住用户痛点?优先解决哪些用户痛点?本专题的文章分享了以上的问题详解。