JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

线性回归与逻辑回归

两种回归是通向机器学习的友好大门:画一条线去预测一个数字,把同一条线弯成一个概率去做「是或否」的判断——而且能直接从模型里读出它为什么这样决定。

拟合一条线:一张图说尽全部

这条阶梯前面的内容你已经熟悉了:监督学习递给你一个由样本组成的数据集,每个样本都有输入特征和一个已知答案,也就是标签线性回归是对一个问题最朴素而诚实的回答——给定特征,预测一个*数字*。想象一片散点:一根轴是房屋面积,另一根轴是价格。线性回归画出那条唯一的直线,让它尽可能贴合地穿过点云,而这条线就是你的模型

一条线无非就是 `y = w*x + b`。斜率 `w` 是一个权重——每多一平方米值多少钱——而 `b` 是截距,也就是特征为零时的基准价格。当特征很多时,你只要叠加更多项:`y = w1*x1 + w2*x2 + ... + b`。这就是整个模型。它只有寥寥几个参数,而所谓学习,*就是*找到那组让线拟合得好的数字 `w` 和 `b`。

「最佳拟合」是什么意思,线又是怎么学出来的

在你能画出的无穷多条线里,哪一条*最好*?我们需要一个数字来给一条线的「错得有多离谱」打分——这就是损失函数。对线性回归,经典的选择是均方误差:对每个点,取线的猜测值与真实值之间的差距,把它平方(这样高估和低估都受罚,而且大错重罚),再求平均。最好的线,就是让这个平方误差总和尽可能小的那一条。

那怎么找到它?有两条路。由于线性模型上的平方误差构成了一个光滑的碗状(凸)曲面,存在一个干净利落的闭式公式,一步就能落到精确的谷底。但真正能扩展、也是这个领域后面每个模型都依赖的方法,是上一阶讲过的梯度下降:从一条随机的线出发,让 `w` 和 `b` 沿误差曲面稍稍往下挪一点,再重复。两条路都通向同一个谷底,因为这里只有一个谷。

从数字到是与否:逻辑回归

现在把问题反过来。不再问*有多少*,而是问*属于哪一类*:这封邮件是不是垃圾邮件,这位病人会不会复发?这就是分类。我们当然想复用那条线,但一条线从负无穷跑到正无穷,而一个「是/否」的答案应该是介于 0 和 1 之间的概率。逻辑回归用一个优雅的动作解决了这个问题:照常算出加权和 `w*x + b`,再把它挤过S 形(sigmoid)函数。

z = w1*x1 + w2*x2 + ... + b      # same weighted sum as linear regression
p = 1 / (1 + exp(-z))            # sigmoid: squashes z into (0, 1)

# p is now a probability, e.g. P(spam)
prediction = "yes" if p >= 0.5 else "no"
逻辑回归就是把一个线性得分套进 sigmoid——那条线还在,只是被弯成了一个概率。

sigmoid 是一条 S 形曲线:很负的得分被压平向 0,很正的得分压平向 1,中间则平滑地穿过 0.5。这里我们不再用平方误差——概率需要另一把尺子,即对数损失(交叉熵),它会狠狠惩罚那种「自信地错」的模型。别被名字骗了,逻辑回归做的是*分类*;「回归」二字是历史遗留,因为它骨子里仍然在回归一个线性得分。

决策边界

「是」究竟在哪里翻转成「否」?就在阈值 `p = 0.5` 处,而这恰好发生在内部得分 `z = w*x + b` 等于零的时候。这个方程——`w*x + b = 0`——本身就是一条线(特征更多时,就是一张平面)。它就是决策边界:模型在一侧说「是」,在另一侧说「否」。逻辑回归只能画出*笔直*的边界;这既是它的看家本领,也是它诚实的局限。

0.5 这个分界点是一种选择,而不是铁律。如果漏掉一笔欺诈的代价远大于一次误报,就把阈值往下挪到 0.3,你会抓到更多正例,代价是更多误报——这正是你之后会从ROC 曲线上读出的那种取舍。还要注意:到边界的距离对应着置信度——紧贴线的点拿到接近 0.5 的概率(耸耸肩),而远离的点被推向 0 或 1(一个笃定的答案)。

一条笔直的边界圈不出一个圆,也圈不出一条螺旋。如果你的两类数据缠绕成任何一条线都分不开的样子,那么无论你训练多久,逻辑回归都会欠拟合——这是归纳偏置的教科书案例,即模型内置的、关于「哪些答案才被允许」的假设。补救之道未必是神经网络:你可以手工造一个巧妙的特征,或者把活儿交给本阶后面要讲的支持向量机决策树

为什么这些老黄牛至今仍能取胜

这两个模型安静的超能力,是可解释性。每一个学到的权重都是一句你能大声说出来的话:「在其他条件不变时,多一间卧室大约多值 1.8 万美元」,或者「这个词让垃圾邮件的对数几率上升 0.4」。你可以审查它,向监管者为它辩护,也能看出它什么时候抓住了不该抓的东西。大多数大模型给不了这些;而在这里,它免费附赠,这正是它处于可解释 AI核心的原因。

不过,读系数要小心。一个很大的权重,可能只是因为那个特征的量纲更大,所以你通常先做特征缩放,让数字之间可比。而且权重报告的是*关联*,不是因果:「冰淇淋销量能预测溺水人数」是一个成立的回归,却是一个虚假的故事。把这两者混为一谈,是这类模型最常见的滥用。

由于参数很少,这两个模型很少过拟合,再加一点轻量的岭回归或套索(lasso)正则化,就能让它们在小样本、宽特征或噪声大的数据上保持靠谱——而这恰恰是充斥着真实业务的那些表格类问题。它们几秒就能训练好,能在手机上跑,还能给出一个强有力的基线,任何更花哨的模型都得先打败它才配得上自己。从这里开始吧。很多时候,你根本不需要走得更远。