【漫话机器学习系列】112.逻辑回归(Logistic Regression)
创作时间:
作者:
@小白创作中心
【漫话机器学习系列】112.逻辑回归(Logistic Regression)
引用
CSDN
1.
https://blog.csdn.net/IT_ORACLE/article/details/145943398
逻辑回归(Logistic Regression)是机器学习中一种广泛使用的二分类算法,尽管其名称中包含"回归",但本质上是一种分类方法。本文将从线性回归的局限性出发,详细阐述逻辑回归的核心思想、数学原理、损失函数以及优化方法,并通过Python代码示例展示其具体应用。
逻辑回归简介
逻辑回归(Logistic Regression)是一种广泛用于二分类任务的统计和机器学习方法,尽管它的名字中带有“回归”,但它实际上是一种分类算法。
在逻辑回归中,我们希望根据输入特征 xxx 预测某个事件发生的概率 P(y=1∣x),并通过逻辑函数(Sigmoid)将输出值限制在 (0,1) 之间,使其可以被解释为概率。
逻辑回归的数学原理
线性回归的不足
假设我们使用线性回归来做二分类问题:
然后我们希望通过某个阈值来决定类别:
- 如果 y ≥ 0.5,分类为 1;
- 如果 y < 0.5,分类为 0。
但这样有以下问题:
- 输出值没有限制:y 的取值范围是 (−∞,+∞),但概率的范围应该是 (0,1)。
- 缺乏概率解释:二分类问题需要输出概率,但线性回归的输出无法自然解释为概率。
逻辑回归的核心思想
逻辑回归通过Sigmoid 函数(S 形函数)来将线性回归的输出转换为概率:
其中,Sigmoid 函数定义为:
性质:
- 当 z → +∞,σ(z) → 1;
- 当 z → −∞,σ(z) → 0;
- 当 z = 0,σ(z) = 0.5。
这个函数的形状如下:
这样,我们可以将输出值映射到 (0,1) 之间,并解释为概率。
逻辑回归的概率解释
逻辑回归实际上是在建模事件发生的概率:
可以改写为对数几率(Log-Odds):
其中:
- 左边是对数几率(log-odds),即事件发生和不发生的比值取对数;
- 右边是线性回归模型。
这说明逻辑回归是对数几率的线性模型,也是它名称中带有“回归”的原因。
逻辑回归的损失函数
在训练逻辑回归模型时,我们需要找到合适的参数 w 和 b,使得模型对数据的预测概率尽可能接近真实值。
交叉熵损失
由于逻辑回归的输出是一个概率,我们不能直接使用均方误差(MSE),而是使用交叉熵损失(Cross Entropy Loss):
其中:
是真实标签(0 或 1);
是模型预测的概率。
损失函数的直觉理解
- 如果真实标签是1,那么只有第一项
起作用,即希望模型预测的
尽可能接近 1,否则损失较大。 - 如果真实标签是0,那么只有第二项
起作用,即希望模型预测的
尽可能接近 0,否则损失较大。
因此,最优的 w 和 b 是使得交叉熵损失最小的参数。
逻辑回归的优化
为了找到最优参数 w 和 b,我们通常使用梯度下降法(Gradient Descent)进行优化。
梯度下降法
我们需要计算损失函数对参数的梯度,然后更新参数:
其中:
- α 是学习率(learning rate)。
- 和
是损失函数的梯度。
梯度计算如下:
然后使用梯度下降进行迭代更新,直到收敛。
其他优化方法
- 批量梯度下降(BGD):使用整个训练集计算梯度,适用于小规模数据。
- 随机梯度下降(SGD):每次随机选取一个样本更新参数,适用于大规模数据。
- 小批量梯度下降(Mini-Batch SGD):每次使用一个小批量的数据计算梯度,是最常用的方法。
逻辑回归的应用
逻辑回归广泛应用于二分类问题,包括:
- 医学诊断(如判断患者是否患病)
- 信用评分(如判断贷款申请人是否违约)
- 垃圾邮件检测(如判断邮件是否是垃圾邮件)
- 广告点击率预测(如预测用户是否会点击广告)
此外,逻辑回归还可以扩展到多分类问题(Softmax 回归),用于处理多个类别的分类任务。
Python 代码实现
可以使用
sklearn
直接实现逻辑回归:
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# 生成数据集
X, y = make_classification(n_samples=1000, n_features=5, random_state=42)
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 训练逻辑回归模型
model = LogisticRegression()
model.fit(X_train, y_train)
# 预测
y_pred = model.predict(X_test)
# 计算准确率
print("Accuracy:", accuracy_score(y_test, y_pred))
结论
- 逻辑回归是用于二分类问题的概率模型。
- 使用 Sigmoid 函数将线性回归的输出映射到 (0,1) 之间。
- 使用交叉熵损失函数来优化参数。
- 可以使用梯度下降进行优化,在实际应用中广泛使用。
逻辑回归虽然简单,但在许多实际任务中表现良好,尤其适用于可解释性要求较高的任务。
热门推荐
搭乘海珠有轨电车,8公里尽览广州新旧风情
从繁华商港到诗意栖居:广州黄埔古港的前世今生
闽南最有名的八大特色美食,你吃过吗,板扎得很
春节氛围感爆棚!防城港必打卡景点推荐
防城港布透温泉:冬日休闲好去处
西湾跨海大桥:防城港摄影新宠
北京车牌摇号攻略:8个官方认可的中签率提升方案
北京摇号中签后操作指南:从资格确认到车辆上牌
冬季必备白菜:白色、绿色怎么选?
2025年成人高考报名倒计时,你准备好了吗?
预防足底筋膜炎:技巧和护理
膝关节滑囊炎:症状、病因与预防
射波刀治疗的优缺点
射波刀的原理和作用
总要来趟南京吧……2025年免费畅玩南京攻略来了!
南京名胜景点是什么?
协和文化名片 | 放射治疗科:以科技人文之光让癌症患者重绽笑容
射波刀治疗肿瘤的副作用及危害
最强“质子刀”出鞘,“定向爆破”肿瘤细胞!28名受试者在协和医院开启质子治疗
协和文化名片 | 放射治疗科:以科技人文之光让癌症患者重绽笑容
古风网名这样取:4种创意方法+10个精选案例
从“碧水寒烟”到“看台观战选手”:教你取个文艺范网名
2024年文艺网名流行趋势:五大特征展现个性与创意
大年初一吉祥菜,你最爱哪道?
大年初一吃什么最旺运?
养生又美味:红豆薏米大枣粥的正确打开方式
红豆薏米粥:利水祛湿佳品,孕妇慎食需知
哈佛研究:5种促发炎食物要少吃,5种抗炎食物要多吃
夏至必备养生饮:洛神乌梅汁的6大功效与制作要点
乌梅丸:《伤寒论》经典方剂,临床应用与考试必考