之前有个读者私信我,说复习模式识别课程时被一道题卡住了:为什么Logistic回归的损失函数是交叉熵而不是均方误差?这个问题的确很典型,很多人在期末复习阶段对Logistic回归的理解还停留在"用sigmoid函数把线性输出压到0到1之间",但一到推导、证明、做实验就露怯了。
这篇内容是我结合课程L4的知识点以及自己跑实验的经验整理的,覆盖了Logistic回归的建模动机、非线性变换的原理与代价、损失函数推导、正则化处理、多分类扩展,以及几个非常容易踩的实现细节。适合正在学模式识别与机器学习课程、准备期末复习、或者刚入门想亲手实现分类器的同学参考,已经熟练用sklearn的朋友也能从中找到一些容易被忽视的底层逻辑。
1. 从"回归"说起:Logistic回归本质解决的是分类问题
1.1 线性回归的输出范围根本不适合做类别判断
先看一个很容易混淆的地方——既然名字里带"回归",那Logistic回归是不是回归问题?不是。它是分类模型,只是借用了线性回归中"特征加权求和"的框架。
线性回归拟合的目标是连续值,输出范围是整个实数轴。如果用来做二分类,最直接的想法是设一个阈值,比如大于0.5判为正类,小于0.5判为负类。这样看起来能工作,但有一个致命问题:线性回归对离群点极其敏感。假设正类样本集中在x=1附近,负类样本集中在x=2附近,这时候只要在x=100的地方出现一个正类离群点,整个回归直线就会被拉偏,导致原本清晰的分类边界被扭曲。这类现象在真实数据里非常常见,因为真实数据几乎总有噪声和离群样本。
另外,线性回归输出的数值本身没有概率语义。输出是5还是50,只能说明"离边界远",但不能解释成"正类的概率是某个值"。而分类问题在数学上最自然的表达是条件概率P(y=1|x),这个值必须落在[0,1]区间内。线性模型做不到这一点,所以我们需要在模型输出端做一个变换。
1.2 sigmoid函数为什么长这样——它不只是"压到0到1"
把实数轴上的值压缩到(0,1)区间的函数很多,比如tanh、分段函数,但Logistic回归选择的是sigmoid:
[
\sigma(z) = \frac{1}{1 + e^{-z}}
]
它的性质很漂亮:单调递增、处处可微、当z趋近正无穷时输出趋近1,当z趋近负无穷时输出趋近0,在z=0附近近似线性。但更本质的原因是,sigmoid和"几率"(odds)这个概念是一对天然的数学组合。
在统计里,一件事情发生的几率定义为p/(1-p),也就是"发生概率与不发生概率的比值"。如果取对数得到对数几率(log-odds),事情就有意思了:
[
\ln\frac{p}{1-p} = z = w^Tx
]
这意味着Logistic回归本质上是在假设"对数几率是输入特征的线性函数"。反过来,从这个等式解出p,得到的就是sigmoid函数。所以sigmoid不是拍脑袋选出来的,而是从"用线性模型建模对数几率"这个假设自然推导出来的结果。这也是为什么Logistic回归属于广义线性模型,因为它连接的是经sigmoid变换后的概率而非原始输出。
1.3 从几率到系数解释:为什么考试总喜欢考"系数含义"
既然对数几率是w^Tx,那系数w_j的含义就可以直接解读:在其它特征不变的情况下,x_j每增加一个单位,对数几率的变化量是w_j。如果换算成几率本身,变化倍数是e^{w_j}。
我见过很多同学在理解这个点的时候卡住,其实只要记住"对数"是为了把乘法变成加法。几率原本是乘性变化的,取了对数之后变成加性变化,和线性模型的结构正好对齐。这也是Logistic回归在工业界仍然被广泛使用的原因之一——它虽然预测能力不如复杂模型,但参数有明确的可解释性,这在风控、医疗、金融等领域至关重要。
决策规则也随之清晰:当P(y=1|x)>0.5时判为正类,等价于z>0。也就是说,模型的决策边界就是超平面w^Tx=0。换句话说,标准的Logistic回归天然只能产生线性决策边界。要处理线性不可分的数据,就需要下面介绍的非线性变换。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 面对线性不可分的数据——非线性变换在干什么
2.1 线性决策边界的天然局限
很多入门教程都用二维平面上的例子来演示Logistic回归,数据恰好是线性可分的,决策边界画一条直线就完事。但现实问题里,特征和类别之间的关系几乎不会是简单的直线。
举一个最简单的例子:二维平面上,正类样本分布在以原点为中心半径为1的圆内,负类样本分布在圆外。这组数据用一条直线无论怎么摆都没法把圆内和圆外分开。类似的还有异或(XOR)模式,四个点分布在(0,0)、(1,1)为正类,(0,1)、(1,0)为负类,这个数据也是线性不可分的。
面对这种情况,有两条路:一是换一个非线性模型,比如决策树、神经网络;二是在原有线性模型框架内,对特征做非线性变换,让数据在新的特征空间里变得线性可分。Logistic回归走的是第二条路,这也是它从"线性分类器"升级为"能处理复杂边界"的关键一步。
2.2 低维线性不可分和高维线性可分——把纸揉皱再展开
非线性变换的核心思想可以类比成:一张纸上有两类点,在纸平面上画直线分不开,但如果把这张纸揉成一团,把其中一类点抬到高处,再在三维空间里找一个平面,就能把它们分开了。特征映射做的就是"把纸揉皱"这个动作,只不过它是通过构造新的特征维
