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.另一个缺点是逻辑回归中的每个数据点都需要独立于所有其他数据点。 当观测值相互关联时,模型往往会高估这些观测值的相关性。