1. 逻辑回归算法概述
逻辑回归(Logistic Regression)是机器学习领域最基础且实用的分类算法之一。虽然名称中带有"回归"二字,但它实际上是一种用于解决二分类问题的线性模型。我第一次接触这个算法是在2013年处理信用卡欺诈检测项目时,当时就被它简洁的数学形式和出色的解释性所吸引。
与线性回归直接预测数值不同,逻辑回归通过sigmoid函数将线性组合的结果映射到(0,1)区间,可以理解为事件发生的概率。比如在医疗诊断中,我们可以用逻辑回归预测患者患某种疾病的概率;在金融风控中,可以预测贷款违约的可能性。这种概率输出的特性使得逻辑回归成为许多业务场景的首选算法。
注意:虽然逻辑回归常用于二分类,但通过One-vs-Rest或Softmax扩展也可以处理多分类问题。不过本文主要聚焦其最典型的二分类应用。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 算法原理深度解析
2.1 核心数学原理
逻辑回归的核心在于sigmoid函数(也称为logistic函数):
σ(z) = 1 / (1 + e^(-z))
其中z = w^T x + b,即特征的线性组合。这个函数的精妙之处在于它将任意实数映射到(0,1)区间,完美契合概率的定义。我经常用"压扁弹簧"的比喻向新手解释——无论输入值多大或多小,输出都会被"压"在0到1之间。
在实际项目中,参数估计通常采用极大似然估计法。我们构建似然函数:
L(w,b) = ∏ [σ(z)]^y [1-σ(z)]^(1-y)
然后通过梯度下降等优化算法找到使似然函数最大化的参数w和b。这里有个经验之谈:当特征量纲差异大时,建议先进行标准化处理,否则梯度下降可能收敛缓慢。
2.2 损失函数的选择
逻辑回归最常用的损失函数是交叉熵损失(Cross-Entropy Loss),其数学表达式为:
J(w,b) = -[y log(σ(z)) + (1-y)log(1-σ(z))]
与均方误差损失相比,交叉熵在分类问题中有两个显著优势:
- 当预测值与真实值差距较大时,梯度也较大,有利于快速收敛
- 避免了sigmoid函数与平方损失组合导致的梯度消失问题
在TensorFlow中实现时,可以注意到它已经内置了将sigmoid和交叉熵联合计算的优化版本tf.nn.sigmoid_cross_entropy_wi
