1️⃣ 什么是逻辑回归?
逻辑回归(Logistic Regression)是一种用于二分类 的监督学习算法,尽管名字中含有"回归",它本质上是一个分类模型 ,预测输出值为属于某个类别的概率,最终通过阈值判断类别。
2️⃣ 逻辑回归的数学原理
线性模型预测的是连续值,而逻辑回归将线性回归的输出映射到 区间,通过概率来进行分类判断。
假设有输入特征向量 ,权重向量
,模型为:
- 线性部分:
3️⃣ 假设函数与 Sigmoid 函数
为了将线性输出转为概率,我们使用 Sigmoid 函数:
Sigmoid 函数定义:
逻辑回归模型输出:
4️⃣ 损失函数与最大似然推导
✅ 对数损失函数(Binary Cross-Entropy Loss):
对于标签 ,预测概率为
,损失函数为:
对整个样本集求平均后作为总损失:
5️⃣ 模型训练:梯度下降法
✅ 参数更新公式(以批量梯度为例):
对 和
求梯度:
然后更新权重和偏置:
6️⃣ Python 实战:逻辑回归分类模型
python
import numpy as np
from sklearn.datasets import make_classification
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_report, confusion_matrix
# 生成数据
X, y = make_classification(n_samples=200, n_features=2, n_redundant=0, random_state=1)
# 模型训练
model = LogisticRegression()
model.fit(X, y)
# 预测与评估
y_pred = model.predict(X)
print(confusion_matrix(y, y_pred))
print(classification_report(y, y_pred))
7️⃣ 模型评估指标(分类任务)
指标 | 公式 | 含义 |
---|---|---|
准确率 Accuracy | 总体正确率 | |
精确率 Precision | 判断为正中有多少是真的 | |
召回率 Recall | 正样本中被识别的比例 | |
F1 分数 | 平衡精确率与召回率 |
8️⃣ 逻辑回归 vs 线性回归
特点 | 逻辑回归 | 线性回归 |
---|---|---|
任务类型 | 分类(概率) | 回归(连续值) |
输出范围 | ||
激活函数 | Sigmoid | 无 |
损失函数 | 对数损失 | 均方误差 |
应用 | 是否患病、是否点击广告等 | 房价预测、销量预测等 |
9️⃣ 优缺点总结
✅ 优点:
-
输出为概率,易于解释
-
实现简单,训练高效
-
对线性可分数据效果好
-
可以自然处理多分类(Softmax)
❌ 缺点:
-
只能解决线性边界分类问题
-
对异常值敏感
-
需要手动特征工程
-
易受特征共线性影响
📚 总结与延伸
-
逻辑回归是分类任务的基础算法。
-
对于非线性边界,可引入特征变换或核方法。
-
学会从最大似然推导损失函数是关键基础。