Logistic(逻辑)回归分析

本文详细介绍了Logistic回归的数学背景,包括分析概要、分类和二元模型。在机器学习中,Logistic回归用于预测事件概率,如广告点击率、疾病诊断等。文章还探讨了优化方法,如梯度下降,并通过癌症分类预测案例展示了LogisticRegression API的实际应用,准确率高达98.25%。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、逻辑回归数学背景

1、逻辑回归(Logistic回归)分析概要

如果现在想对某件事情发生的概率进行预估,比如一个非医用口罩,在疫情期间是否有人愿意买?这里的Y变量是“是否愿意购买”,属于分类数据,所以不能使用回归分析。如果Y为类别性(定性)数据,研究影响关系,正确做法是选择Logistic回归分析。

Logistic回归分析可用于估计某个事件发生的可能性,也可分析某个问题的影响因素有哪些。研究影响关系时,即X对于Y的影响情况。Y为定量数据,X可以是定量数据或定类数据。医学研究中,Logistic回归常用于对某种疾病的危险因素分析。像是分析年龄、吸烟、饮酒、饮食情况等是否属于2型糖尿病的危险因素。

Logistic回归和线性回归最大的区别在于,Y的数据类型。线性回归分析的因变量Y属于定量数据,而Logistic回归分析的因变量Y属于分类数据。

逻辑回归应用场景:广告点击率(是否会被点击),垃圾邮件、是否患病、金融诈骗、虚假账号等

2、Logistic回归分类

·按照反应变量类型

如果Y值仅两个选项,分别是有和无之类的分类数据,选择二元Logistic回归分析。Y值的选项有多个,并且选项之间没有大小对比关系,则可以使用多元Logistic回归分析。Y值的选项有多个,并且选项之间可以对比大小关系,选项具有对比意义,应该使用多元有序Logistic回归分析。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Rvosujtu-1582614978105)(attachment:image.png)]

·按照研究设计类型
- 非条件logistic回归(研究对象未经匹配)
- 条件logistic回归(研究对象经过匹配)

3、二元Logistic回归模型

注意:二元不是说只有两个自变量x,而是因变量Y只有两种取值,一般用0/1替换。
因变量Y=0 或 1 ,0表示不发生,1表示发生,自变量X1,X2,X3,...,Xm.
在m个自变量的作用下,因变量Y=1发生的概率是p,p=p(Y=1|X1,X2,...,Xm) 0<=p<=1
它与自变量X1,X2,...,Xm之间的Logistic回归模型为:
p   = [exp(b0+b1X1+b2X2+...+bmXm)]/[1+exp(b0+b1X1+b2X2+...+bmXm)]

1-p  = 1/[1+exp(b0+b1X1+b2X2+...+bmXm)]
换算一下:
p/(1-p) = exp(b0+b1X1+b2X2+...+bmXm)
ln(p/(1-p)) = b0+b1X1+b2X2+...+bmXm = logit(p)

当没有影响因素x的作用时,b0就表示发生与不发生概率比的自然对数值
当某个因素Xi 变化时(暴露水平变化),如x=0,变为x=1,Xi=1与Xi=0相比,发生某结果(如发病)优势比的对数值。用来表示bi的含义。
优势比OR = (P1/(1-P1))/(P0/(1-P0))
LnOR = ln[(P1/(1-P1))/(P0/(1-P0))] = ln[(P1/(1-P1))]- ln[(P0/(1-P0))] = logit(p1)-logit(p0)
参考:https://wenku.baidu.com/view/6c1421bef424ccbff121dd36a32d7375a417c675.html?sxts=1581917115648

二、逻辑回归在机器学习中的使用

1、回顾原理

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gYZyQZGQ-1582614978111)(attachment:image.png)]

2、损失函数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Kuxxvv67-1582614978114)(attachment:image.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rGYs7NML-1582614978115)(attachment:image.png)]

3、优化

使用梯度下降优化算法,去减少损失函数的值。这样去更新逻辑回归前面对应算法的权重参数,提升原本属于1类别的概率,降低原本是0类别的概率。

4、逻辑回归API

·sklearn.linear_model.LogisticRegression(solver=‘liblinear’,penalty=‘L2’,C=1.0)

。solver.优化求解方式(默认开源的liblinear库实现,内部使用了坐标轴下降法来送代优化损失函数)
    ·sag:根据数据集自动选择,随机平均梯度下降
。penalty:正则化的种类(优化算法)
。C:正则化力度,取值0-1,1-10。正则化力度越大,权重系数会越小,正则化力度越小,权重系数会越大。

默认将类别数量少的当做正例

三、案例:癌症分类预测–良/恶性

import pandas as pd
import numpy as
### Python中实现逻辑回归 逻辑回归是一种广泛应用于二分类问题的经典算法[^1]。为了在Python中实现这一算法,通常会利用`scikit-learn`库中的`LogisticRegression`类来简化过程。 #### 使用Scikit-Learn实现逻辑回归 下面是一个简单的例子,展示了如何使用`scikit-learn`库快速构建并训练一个逻辑回归模型: ```python from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.datasets import load_iris from sklearn.metrics import accuracy_score # 加载数据集 data = load_iris() X, y = data.data[data.target != 2], (data.target[data.target != 2] == 1).astype(int) # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) # 创建逻辑回归实例 model = LogisticRegression() # 训练模型 model.fit(X_train, y_train) # 预测 predictions = model.predict(X_test) # 输出准确率 print(f'Accuracy: {accuracy_score(y_test, predictions)}') ``` 这段代码首先导入必要的模块,并加载了一个简化版的鸢尾花数据集作为演示用途,只保留两个类别以便于展示二分类场景下的应用方式。接着通过`train_test_split()`方法划分了训练集与测试集;创建了`LogisticRegression`对象之后进行了拟合操作即训练过程;最后计算了预测结果相对于真实标签的准确性得分。 除了上述简便的方法外,在深入理解原理的基础上也可以手动编写逻辑回归的核心部分,这涉及到定义损失函数以及采用梯度下降法来进行参数优化等内容,不过对于大多数应用场景来说,借助成熟的第三方库往往更加高效便捷。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值