R中的Logistic回歸:方程推導[帶示例]
已發表: 2020-07-28在本文中,我們將討論機器學習中最常見但最具挑戰性的概念之一,即邏輯回歸。 您將在這篇詳細的文章中了解什麼是邏輯回歸以及邏輯回歸方程的推導。
我們還分享了 R 中的邏輯回歸示例,以便更輕鬆地理解這個概念。 但是,在處理示例之前,請確保您相當了解所有想法。 如果您熟悉線性回歸會很有幫助,因為這兩個概念是相互關聯的。
目錄
什麼是邏輯回歸?
邏輯回歸根據一組自變量預測二元結果。 它是一種分類算法,使用 logit 函數和擬合數據來預測事件發生的概率。 邏輯回歸不同於線性回歸,因為它可以預測只能有兩個值的結果的可能性。 當您有二元變量時,不適合使用線性回歸,因為:
- 線性回歸將預測超出所需範圍的值
- 回歸可能不會將這兩種收益分佈在一條預測線上
邏輯回歸不像線性回歸那樣產生一條線。 它提供了一條介於 0 和大於 1 的值之間的邏輯曲線。
學習世界頂尖大學的數據科學在線課程。 獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。
查看: R 項目創意
邏輯回歸方程推導
我們可以從線性回歸方程推導出邏輯回歸方程。 邏輯回歸屬於 glm 算法(廣義線性模型)的類別。 Nelder 和 Wedderburn 在 1972 年引入了這個模型,作為一種使用線性回歸來解決以前無法解決的問題的方法。 他們提出了一類單獨的模型,並添加了邏輯回歸作為特殊模型。
我們知道廣義線性模型的方程如下:
g(e<y) = a + bx1
g() 代錶鍊接函數,E(y) 代表目標變量的期望值,RHS(右側)是線性預測器。 鏈接函數將 y 的期望與線性預測變量“鏈接”。
假設我們有 100 個客戶的數據,我們需要預測客戶是否會購買特定產品。 由於我們有一個分類結果變量,我們必須使用邏輯回歸。
我們將從線性回歸方程開始:
g(y) = o+(收入) - (1)
在這裡,為了便於理解,我們將自變量保留為“收入”。
我們的重點是結果因變量的概率(客戶是否會購買?)。 正如我們已經討論過的,g() 是我們的鏈接函數,它基於成功概率 (p) 和失敗概率 (1-p)。 p 應具有以下品質:
- p 應始終為正
- p 應始終小於或等於 1
現在,我們將用“p”表示 g(),並推導出我們的邏輯回歸方程。
由於概率總是正的,我們將覆蓋指數形式的線性方程並得到以下結果:
p = exp(0+(收入)) = e((0+(收入)) — (2)
我們必須將 p 除以一個大於 p 的數以使概率小於 1:
p = exp(0+(收入)) / (0+(收入)) + 1 = e(0+(收入)) / (0+(收入)) + 1 — (3)
通過使用等式。 (1)、(2) 和 (3),我們可以將 p 定義為:
p = ey /1 + ey — (4)
這裡,p是成功的概率,所以1-p一定是失敗的概率:
q = 1 – p = 1 -(ey /1 + ey) — (5)
現在讓我們將 (4) 除以 (5):
p / 1 – p = ey
如果我們在兩邊都記錄日誌,我們會得到以下信息:
對數 (p / 1 – p) = y
這是鏈接功能。 當我們代入之前建立的 y 值時,我們得到:
log(p / 1 – p) = o + (收入)
我們有它,邏輯回歸方程。 由於它提供了結果的概率,它的值始終保持在 0 和 1 以上之間。
閱讀: 9個有趣的線性回歸項目想法和初學者主題
R中的邏輯回歸示例
在我們的 R 邏輯回歸案例中,我們使用來自 UCLA(加州大學洛杉磯分校)的數據。 在這裡,我們必須創建一個模型,根據我們擁有的數據預測被錄取的機會。 我們有四個變量,包括GPA、GRE成績、學生本科院校的排名和錄取。
df <- read.csv(“https://stats.idre.ucla.edu/stat/data/binary.csv”)
str(df)
## 'data.frame': 400 obs。 4個變量:
## $ 承認:int 0 1 1 1 0 1 1 0 1 0 …
## $ gre:int 380 660 800 640 520 760 560 400 540 700 …
## $ gpa : 數字 3.61 3.67 4 3.19 2.93 3 2.98 3.08 3.39 3.92 …
## $ rank : int 3 3 1 4 4 2 1 2 3 2 …
變量是數字或整數:
總和(is.na(df))
## [1] 0
我們還發現沒有空值,並且拒絕事件比接受事件更多,因為變量限制的平均值小於 0.5。
您應該確保系統在每個級別中適當地分配錄取。 假設一個等級只有 5 個拒絕(或承認信息),那麼您不必在分析中使用該等級。
xtabs(~ 承認 +rank ,data=df)
##排名
## 承認 1 2 3 4
## 0 28 97 93 55
## 1 33 54 28 12

現在讓我們運行我們的函數:
df$rank <- as.factor(df$rank)
logit <- glm(admit ~ gre+gpa+rank,data=df,family=”binomial”)
摘要(logit)
##
## 稱呼:
## glm(公式 = 承認 ~ gre + gpa + rank, family = “二項式”,
## 數據 = df)
##
## 偏差殘差:
## 最小值 1Q 中值 3Q 最大值
## -1.6268 -0.8662 -0.6388 1.1490 2.0790
##
## 係數:
## 估計標準。 誤差 z 值 Pr(>|z|)
##(攔截)-3.989979 1.139951 -3.500 0.000465 ***
## gre 0.002264 0.001094 2.070 0.038465 *
## gpa 0.804038 0.331819 2.423 0.015388 *
## rank2 -0.675443 0.316490 -2.134 0.032829 *
## rank3 -1.340204 0.345306 -3.881 0.000104 ***
## rank4 -1.551464 0.417832 -3.713 0.000205 ***
## —
## 意義。 代碼:0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1''1
##
##(二項式族的分散參數取為1)
##
## 零偏差:399 自由度上的 499.98
## 殘餘偏差:394 自由度上的 458.52
## AIC:470.52
##
## Fisher 評分迭代次數:4
您一定已經註意到,在運行函數之前,我們已經將 rank 變量從整數轉換為因子。 確保你也這樣做。
最後結果:
假設一個學生的 GPA 是 3.8,GRE 成績是 790,他在排名第一的大學學習。 讓我們使用我們的模型找到他未來被錄取的機會:
x <- data.frame(gre=790,gpa=3.8,rank=as.factor(1))
p<- 預測(logit,x)
p
## 1
## 0.85426
我們的模型預測,這個男孩將來有 85% 的機會被錄取。
另請閱讀:機器學習項目理念
最後的想法
這就是本文的內容。 我們相信您會發現它很有幫助。 如果您對邏輯回歸及其相關主題有任何疑問或想法,請在下面的評論部分分享。
如果您想了解 R 以及有關數據科學的所有知識,請查看 IIIT-B 和 upGrad 的數據科學執行 PG 計劃,該計劃是為在職專業人士創建的,並提供 10 多個案例研究和項目、實用的實踐研討會、指導行業專家,與行業導師一對一交流,400 多個小時的學習和頂級公司的工作協助。
邏輯回歸和線性回歸有何不同?
線性回歸的目標是確定最佳擬合線,但邏輯回歸更進一步,將線值擬合到 sigmoid 曲線。 這兩種方法的主要區別在於當因變量是二元時應用邏輯回歸。 當因變量為連續且回歸線為線性時,使用線性回歸。 雖然普通最小二乘技術用於估計線性回歸,但最大似然估計方法用於估計邏輯回歸。 線性回歸的輸出是連續的,但邏輯回歸的輸出只有有限數量的離散潛在值。
什麼時候使用邏輯回歸有幫助?
使用邏輯回歸預測分類因變量。 當我們擁有的數據可以在無限範圍內測量時,我們可以應用邏輯回歸。 為了估計發生的可能性,邏輯回歸分析很有用。 它有助於確定任何兩個類別的概率。 只能使用邏輯回歸預測分類和概率結果。 它可用於解決各種分類問題,如垃圾郵件檢測、糖尿病預測、癌症診斷等。
使用邏輯回歸有什麼限制?
1. 由於邏輯回歸具有線性決策面,因此無法解決非線性問題。
2.邏輯回歸算法對異常值敏感。
3. 由於縮放和歸一化都是 Logistic 回歸的關鍵標準,因此數據準備可能很耗時。
4. 如果存在完全分離兩個類的特徵,則無法再訓練模型。 這被稱為“完全分離”。
5. 如果觀察數少於特徵數,則不應應用邏輯回歸,因為它可能導致過擬合。
6.另一個缺點是邏輯回歸中的每個數據點都需要獨立於所有其他數據點。 當觀測值相互關聯時,模型往往會高估這些觀測值的相關性。