第 3 章 · 第 1 讲 / 共 7 讲

线性模型是什么

先把地基打好:模型长什么样、w 和 b 各管什么、西瓜的属性怎么变成数字。这一讲不推任何公式。

约 15 分钟 1 个自测 教材 §3.1 + §3.2 开头

这一讲你会拿到什么

能自己写出 f(x)=wTx+b 并解释两个参数各自的作用;能把「高/中/低」「西瓜/南瓜/黄瓜」这两类属性正确地变成数字,并说出为什么不能乱编号。

第 3 章整章只回答一个问题:怎么用「加权求和」这一个动作,干完回归、分类、降维这些不同的任务。七讲会按这条线一段段走完。这一讲先只做一件事——把「线性模型」这个名词彻底看清。

3.1 基本形式全章的地基

先看定义。给定一个样本 x,它有 d 个属性(比如西瓜的色泽、根蒂、敲声……一共 d 个),那么:

f(x) = w1x1 + w2x2 + … + wdxd + b 式 (3.1)

这句话的人话版:每个属性乘上它自己的分量(权重),全部加起来,再补一个底数。就这么简单。

举个具体的:假设判断一个西瓜甜不甜,只看三个属性——糖度 12、水分 80、重量 5。模型是 0.8×糖度 + 0.1×水分 − 0.3×重量 + 2,那预测值就是 9.6 + 8 − 1.5 + 2 = 18.1。模型干的全部事情,就是这一行加法。

三个符号,逐个说清

符号是什么怎么读
xi 样本在第 i 个属性上的取值 "第 i 个特征的值"。它是一个数。
wi 第 i 个属性对应的权重,是要学的东西 "第 i 个特征有多重要"。也是个数字,可以是负的。
b 偏置项(bias),也叫截距,同样是要学的东西 "不管特征是什么,先垫一个底"。没有它,模型就被迫穿过原点。

然后是向量写法。把 w 和 x 各自打包成一个有序的列表(这就是"向量"),式 (3.1) 那串加法就能写成:

f(x) = wTx + b 式 (3.2)
这一步在干什么

wTx 念作"w 转置乘以 x",意思是把两个列表对应位置的数相乘,再把所有乘积加起来——也就是所谓的点积。它和式 (3.1) 那串长加法是一模一样的东西,只是写起来短。

为什么要换成这个写法?因为式 (3.1) 里有个 d,d 可能是 3 也可能是 30000。写成 wTx 之后,不管 d 是多少,式子的样子都不变。后面推公式、写代码,全靠这个便利。

一维:切一个点 阈值 只有一个属性时, 模型只会在数轴上切一刀。 二维:切一条线 两个属性时,模型的"边界" 是一条直线。 三维:切一个平面 三个属性时,边界变成一个 平面。(再多维就叫"超平面")
线性模型能表达的东西,就是一种「切」:一维是切一个点,二维是切一条直线,三维是切一个平面,更高维就叫超平面。它只能切直的一刀——这正是"线性"两个字的全部含义,也解释了它为什么既简单又有局限。

为什么这么简单的东西值得单独一节?

书给了三条理由,值得一条条体会:

  1. 它是很多强模型的骨架。原书说"许多功能更为强大的非线性模型可在线性模型的基础上通过引入层级结构或高维映射而得"。翻译一下:神经网络的一层,本质就是 wTx+b 再套一个非线性函数(第 5 章);支持向量机能处理非线性,靠的是先把数据映射到高维再在这个高维空间里做线性划分(第 6 章)。所以这一章没读懂,第 5、6 章会很痛苦。
  2. 它可解释。这是线性模型独有的优势。书里的例子:若学得
    f好瓜(x) = 0.2·色泽 + 0.5·根蒂 + 0.3·敲声 + 1,
    因为根蒂的权重 0.5 最大,敲声 0.3 次之,色泽 0.2 最小,所以可以读成:"根蒂最要紧,敲声比色泽更重要。"权重的大小直接就是重要性排序,这在深度神经网络里是拿不到的。
  3. 它形式简单、易于建模。参数只有 d+1 个,训练快,不容易过拟合,出了问题也好排查。
常见坑

上面"权重越大越重要"这句话有个前提:各个特征的量纲(尺度)差不多。如果"糖度"的取值范围是 0–15,而"重量"是 0–5000 克,那重量的权重天然会很小,你没法通过比权重来判断谁重要。所以真要比权重,得先把特征标准化(都缩放到同一尺度)。书里没写这一句,但这是实践里必须知道的。

随堂自测 · 3.1

若学得 f好瓜(x) = 0.2·色泽 + 0.5·根蒂 + 0.3·敲声 + 1,下面哪种解读是对的?

权重衡量的是"这个属性每变一个单位,预测值变多少",所以 0.5 > 0.3 > 0.2 就是重要性排序。另外三个都错在细节上:权重之和不必为 1(也可以为负、可以很大);0.2 不是 0,色泽仍在起作用;而"取值范围宽"恰恰应该配更小的权重,否则一个量纲很大的特征会主导整个模型——这正是上一段"常见坑"说的事。

3.2 线性回归让模型输出一个实数

回归任务的意思是:要预测的东西是连续的实数——房价、温度、西瓜的含糖量。这类任务里,"线性模型"就叫"线性回归"(linear regression)。

数据集的写法先熟悉一下:

D = {(x1, y1), (x2, y2), …, (xm, ym)}

读作:一共有 m 个样本,第 i 个样本有 d 个属性(记作向量 xi),它的正确答案是实数 yi。m 是样本个数,d 是属性个数,这两个数在这一章里反复出现,别搞混。

动笔之前:离散属性怎么变成数字

模型只会做加减乘,所以属性必须是数。但现实里的属性常常是"高/中/低""西瓜/南瓜/黄瓜"。书里给了两条规则,分界线只有一条:这些取值之间有没有"序"(大小顺序)。

表 3-A:两类离散属性的处理方式(对应原书 3.2 开头)
属性类型处理方式例子
有序
(取值之间有大小)
连续化:按顺序映射成一串等距的数 二值属性"身高":高→1.0,矮→0.0
三值属性"高度":高→1.0,中→0.5,低→0.0
无序
(取值之间没大小)
转成 k 维向量(一个 1,其余 0,即 one-hot 编码) 三值属性"瓜类":西瓜→(0,0,1),南瓜→(0,1,0),黄瓜→(1,0,0)
✗ 直接编号:凭空造出了"距离" 1 2 3 西瓜 南瓜 黄瓜 距离 1 距离 1 但西瓜到黄瓜成了"距离 2" 模型会以为黄瓜离西瓜比南瓜远一倍——这完全是假的。 ✓ k 维 0/1 向量:三类彼此等距 西瓜 (0,0,1) 南瓜 (0,1,0) 黄瓜 (1,0,0) 三条边都相等 没有谁"更近"或"更大",距离计算才不会被误导。
同一个"瓜类"属性,两种编码方式造出的几何形状完全不同:左边三点排在一条线上,距离有远有近;右边三点摆成等边三角形,两两等距。模型算相似度、算距离全靠这个几何关系——所以编码方式本身就在替你先做了一次"假设",选错了就会把假关系喂给模型。
为什么不能给无序属性直接编号 1、2、3

因为那等于凭空造出一个不存在的大小关系。如果硬把"西瓜=1、南瓜=2、黄瓜=3",模型就会以为"黄瓜是西瓜的 3 倍"、"南瓜正好在两者中间"。这些关系全是假的,后面算距离、算相关系数时都会被误导。原书在这里留了个指向:"参见 9.3 节"——第 9 章讲聚类时会再吃一次这个亏。

用 (0,0,1)、(0,1,0)、(1,0,0) 就安全了:任意两个之间的距离都一样(都是 √2),谁也不比谁"大"。

本讲小结

  • 线性模型 = 加权求和 + 一个偏置。w 是「敏感度」,b 是「基准线」。
  • 它的可解释性来自「权重大小 = 重要性排序」,但前提是各特征尺度相近。
  • 有序属性 → 连续化;无序属性 → k 维 0/1 向量。
  • 给无序属性直接编 1、2、3,等于凭空造出一个不存在的大小关系。

下一讲:一条直线的闭式解。我们要回答「误差怎么量」和「最小值怎么求」,你会看到那个吓人的公式其实只是一句「协方差除以方差」。

卡住了就直接问我 —— 把没看懂的那一句原样抄给我,我单独展开讲,不用客气。