1. 逻辑斯蒂回归基础概念
逻辑斯蒂回归(Logistic Regression)是机器学习中最基础也最重要的分类算法之一。虽然名字中带有"回归",但它实际上是一种用于解决二分类问题的线性模型。我第一次接触这个算法时,也曾被它的命名所困惑,直到理解了其背后的数学原理才恍然大悟。
1.1 从线性回归到逻辑斯蒂回归
线性回归模型的形式很简单:y = wx + b。它通过最小化预测值与真实值之间的平方误差来学习参数w和b。但当我们要解决分类问题时,特别是二分类问题(输出为0或1),线性回归就存在几个明显问题:
- 输出范围不受限:线性回归的输出y可以是从负无穷到正无穷的任何值
- 对异常值敏感:由于使用平方误差,离群点会对模型产生很大影响
- 概率解释困难:我们更希望得到样本属于某个类别的概率
逻辑斯蒂回归通过一个简单的变换解决了这些问题 - 引入Sigmoid函数(也叫Logistic函数)。这个函数的数学表达式为:
σ(z) = 1 / (1 + e^(-z))
它将任何实数z映射到(0,1)区间,完美符合概率的定义。在实际应用中,我们通常将z设为线性组合z = wx + b,因此完整的逻辑斯蒂回归模型可以表示为:
P(y=1|x) = σ(wx + b) = 1 / (1 + e^(-(wx + b)))
1.2 Sigmoid函数的特性
Sigmoid函数有几个非常重要的数学特性:
- 输出范围固定在(0,1)之间,适合表示概率
- 函数处处可导,且导数σ'(z) = σ(z)(1-σ(z)),这个特性在反向传播中非常有用
- 函数在z=0时取值为0.5,可以自然作为分类的决策边界
在实际应用中,我们通常将预测概率大于0.5的样本分类为正类(1),小于0.5的分类为负类(0)。这个阈值也可以根据具体应用场景调整,比如在医疗诊断中,我们可能希望更保守一些,将阈值设为0.7等。
注意:虽然Sigmoid函数在逻辑斯蒂回归中很常用,但它并不是唯一的选择。当处理多分类问题时,我们通常会使用Softmax函数作为推广。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 模型训练与损失函数
2.1 交叉熵损失函数
在逻辑斯蒂回归中,我们不再使用线性回归中的均方误差(MSE)作为损失函数,而是使用交叉熵损失(Cross-Entropy Loss)。这个选择不是随意的,而是有深刻的数学原理。
对于二分类问题,交叉熵损失的定义为:
L = -[y*log(p) + (1-y)*log(1-p)]
其中y是真实标签(0或1),p是预测概率。这个函数有几个很好的性质:
- 当y=1时,损失为-log(p),预测越接近1损失越小
- 当y=0时,损失为-log(1-p),预测越接近0损失越小
- 对于错误预测的惩罚是急剧增加的(比如当y=1但p接近0时)
从信息论的角度看,交叉熵衡量的是两个概率分布之间的差异。在分类问题中,我们希望模型的预测分布尽可能接近真实的数据分布。
