Vince Jiang

CSCI3230 / 课程伴读 · 本站更新

CSCI3230 L02 · Part 1/5 Linear regression problem

课程:CSCI3230 (ESTR3108) Fundamentals of Artificial Intelligence · 2026T1 本讲:L02,第 1 部分 / 共 5 部分 · 原件 L02-Linear-Regression-2026T1.pdf(本地课件) p.1–16 定位:先用一间房子的预测走懂“数据、参数、输出”,再把同一件事慢慢写成矩阵;这一篇不要求先会矩阵求导。 前后:下一份 Optimizing linear regression

整讲导航:

p.1 标题页,p.2 Outline,p.3 分节页。原 Outline 有四部分,p.43 起为 ESTR3108 尾段。本篇先用加减乘法理解,矩阵只是把重复计算写短,不是一上来就需要背的新算法。

回归中的输入、输出与“线性”(p.4–5)【新】

p.4 The input of regression program is independent variable(s).

假设你想知道一间尚未出租的房子大约租多少钱。你已经知道它有多大,却不知道租金。这时“面积”放在计算的输入端,“租金”是希望得到的输出。**回归(regression)**是在例子中学习一种预测数量的方法。这里的数量可以是租金、身高、温度;它不是从“猫、狗、鸟”中选一个类别。

先认识三个角色,后面每个公式都在谈它们:

角色 租金例子 训练时是否已知
特征 feature 一间房子的面积 已知,是预测时可以拿到的信息
标签 label / 响应 response 这间房子已记录的租金 训练样本已知,新房子待预测
参数 parameter 面积每增加一单位,预测租金增加多少 需要从训练数据选择

课件 p.4 的身高例子同样如此:年龄、性别、饮食是输入,身高是输出。这里 independent variable 是“作为输入的变量”的传统名称,不能由这个名称推出各输入在统计上互相独立。模型能用面积预测租金,也不意味着它已经证明面积是租金变化的唯一原因。

补充:先用一个很小的预测规则试手。 以下数字是为演示取的,不是课件房租数据。把面积用“十平方米”为一单位、租金用“千港元”为一单位,暂定规则是:先给一个基础值 5,每增加一单位面积再加 2。面积输入为 3,就是 30 平方米;预测为 5+2×3=115+2\times3=11,即 11 千港元。

现在才给这个规则命名:

y^=θ0+θ1x. \hat y=\theta_0+\theta_1x.

xx 是输入面积的数值,只有一个数;y^\hat y 是预测租金,也只有一个数。帽子表示“预测”,与真实记录的 yy 区别。θ0\theta_0 读作 theta 零,是基础值或截距;θ1\theta_1 是面积前的系数,也叫斜率。在刚才的例子里,这两个参数分别暂取 5 和 2。训练要决定它们是否合适,本节只是先理解给定参数后怎样算。截距是这个模型在输入为零时的预测;现实中零面积房屋可能没有意义,因此“基础值”只是计算上的理解,不代表真实固定费用。

如果面积从 3 增加到 4,预测从 11 增加到 13。每增加一个面积单位,输出总增加 2,这就是图像为直线的直觉。把截距从 5 改成 6,所有房子的预测都加 1;把斜率从 2 改成 3,则面积越大的房子增加得越多。这是两个参数不同的作用,不要把它们当成两个没有含义的待填数字。

p.5 给严格线性映射的可加性、齐次性定义;带非零截距的规则严格说是仿射函数。这是数学用词与统计习惯的区别:统计学仍称它“线性回归”。第一次学习时,先记住它是特征的加权相加,并允许一个截距。

再慢一步:线性到底是对谁说的? 把 x2x^2 当成一个已计算好的新特征,模型 θ0+θ1x+θ2x2\theta_0+\theta_1x+\theta_2x^2 对未知系数仍是加权求和。它画出来可以弯,但仍能用后面的线性最小二乘方法。反之,若未知系数彼此相乘,或未知系数躲进正弦函数中,就不能直接套同一个矩阵公式。判断时先圈出“固定数据”和“未知参数”,不要只看曲线外形。

小检查:规则 5+2x5+2x 中,哪一部分使所有预测同时上下平移?把 xx 换成 4,是在训练参数,还是在使用参数?

参考答案 · 输入和参数

截距 5 控制整体平移。把新输入代进去得到预测是在使用模型;只有根据训练样本调整系数才是在训练。此时 xx 变了,不代表参数也变了。

回归与分类的旧题例子放在见附录 A1。先看输出的任务含义,再看算法叫什么。

**p.4 的术语完整对照:**输出还叫 dependent variable、outcome、response variable;输入还叫 independent variable、predictor、covariate、explanatory variable、feature。这些同义词在不同材料中会交替出现,指的仍是建模中的角色。

**p.5 的两条严格线性条件:**对定义域中的向量 u,vu,v 与标量 cc,要求 f(u+v)=f(u)+f(v)f(u+v)=f(u)+f(v) 和 f(cu)=cf(u)f(cu)=cf(u)。第一条是先相加再映射等于分别映射再相加;第二条是缩放输入与缩放输出兼容。由第二条取 c=0c=0 可得 f(0)=0f(0)=0,所以非零截距不满足严格线性定义。课件列出的关系例子是滑动摩擦与正压力、重力与质量、距离与速度;补充条件:相应比例系数要固定,例如距离与速度的正比需固定时间,不能离开条件笼统称所有运动都线性。

从租金数据提出函数问题(p.6–8)

题面(L02-Linear-Regression-2026T1.pdf · 租金例子 · p.6)

p.6 For a concrete example, we would like to predict the rent of apartments near CUHK based on their areas in squared meters.

Suppose we already have a dataset like the table below and plot the data points in the right figure.

Can we predict the rent of any input apartment areas?

表(题面,p.6):原页显示的样本;省略号是原页的一部分,单位照原件保留,不自行改成月租或年租。

Index Areas (m2) Rent (HKD)
1 40 134072
2 92 182241
3 37 134731
4 124 204325
5 88 187375
... ... ...

图(p.6):面积与租金散点。 元素:横轴是面积、纵轴是租金,每点是一间房子,散点整体向右上延伸。 看什么:相近面积仍可能有不同租金;趋势不是每点都恰好落在一条直线上。

这张图给我们的只是一个建模起点:面积较大时,租金总体更高,因此尝试直线也许有用。它没有证明真实世界一定严格线性。朝向、地段、装修以及记录误差都可能使同面积房子不同价;哪些因素实际存在需要资料支持,这里只是解释为什么数据不必整齐排成直线。

p.7 用 ff 表示希望接近的真实映射,用 f^\hat f 表示训练出来的近似规则。所谓函数 function,在本例中就是“给定面积后输出一个预测租金的规则”。X\mathcal X 表示允许输入的集合,Y\mathcal Y 表示允许输出的集合;f:X→Yf:\mathcal X\to\mathcal Y 只是在说明输入从哪里来、输出到哪里去,不是一条用来求参数的新公式。

p.8 的直线假设接着把候选规则缩小为上一节的形式。于是原本很宽的“找一个函数”问题,变成“选择截距和斜率两个数”。这就是模型假设的用处:让可以尝试的规则有限制;代价是限制太强时可能表达不了真实趋势。

现在能否给出课件整套数据的拟合直线?不能。表中只显示前五行与省略号,完整数据没有在这一页给出。我们可以说明求解流程,但不能把五行的拟合结果称为课件完整数据的答案。Part 2 会用另一组完整的三点数据手算一次。

另外,“可以输入任意面积”是规则在数学上可计算,不等于“对任意面积都可靠”。若训练房子集中在几十到几百平方米,把模型用于几千平方米就属于外推:离开观察过的范围,需要额外证据判断原规律是否仍成立。

**p.7–8 的一般空间与图:**课件将输入集设为 X⊂Rn\mathcal X\subset\mathbb R^n,输出集为 Y⊂R\mathcal Y\subset\mathbb R;每条输入是 nn 个实数组成的向量,而本讲每条输出是一个实数。目标是在训练记录上构造 f^:X→Y\hat f:\mathcal X\to\mathcal Y 接近真实 ff。p.8 在原散点上加红色上升直线,横轴 Areas、纵轴 Rent,蓝点在直线两侧分散;它展示候选函数的形状,不提供所有散点的数值或一个已知正确斜率。

一维推广到多维(p.9–11)【新】

p.9 先用一个面积特征,p.10 再提出车站距离、楼层等因素。这里“一维、二维”是在数一间房子用多少个特征描述,不是在数数据里有多少间房。

补充·贯穿算例继续。 以下数字仍为演示取值。现在用两个特征:x1x_1 是面积(十平方米),x2x_2 是离车站距离(百米)。暂定截距 5、面积系数 2、距离系数 -1。一间面积 30 平方米、距站 200 米的房子,对应 (x1,x2)=(3,2)(x_1,x_2)=(3,2)。

不要急着点积,先分开算三块贡献:

部分 代入 对预测的贡献(千港元)
基础值 θ0=5\theta_0=5 5
面积项 θ1x1=2×3\theta_1x_1=2\times3 6
距离项 θ2x2=(−1)×2\theta_2x_2=(-1)\times2 -2

相加得到 5+6−2=95+6-2=9,这里的 9 对应 9000 港元。所有系数都只是虚构教学规则,不是实证租金结论。负系数的意思是:在这个假设模型中,保持面积不变,离车站再远一百米,预测减少一千港元。它不是说距离为负,也不是说整项模型输出必然为负,更不单凭拟合就证明因果。

写成一般式就是

y^=θ0+∑j=1nθjxj. \hat y=\theta_0+\sum_{j=1}^{n}\theta_jx_j.

nn 是特征个数;jj 是当前在看第几个特征;求和符号表示从第一个特征到第 nn 个,把每个“特征乘系数”的结果相加。这里还只有一间房、一个输出。

为了少写一长串,p.11 把数按列排成向量:

x=(32),θ=(2−1). x=\begin{pmatrix}3\\2\end{pmatrix},\qquad \theta=\begin{pmatrix}2\\-1\end{pmatrix}.

两个向量都是 2×12\times1:2 行、1 列。转置记号 TT 把列换成行,所以 xTx^T 是 (3,2)(3,2),形状变成 1×21\times2。行乘列就是对应相乘再相加:

xTθ=3×2+2×(−1)=4,y^=xTθ+θ0=4+5=9. x^T\theta=3\times2+2\times(-1)=4,\qquad \hat y=x^T\theta+\theta_0=4+5=9.

这不是新算法,只是刚才表格计算的缩写。截距仍单独放着,所以向量里暂时不包括它。若你把截距已经放进向量又在末尾再加一次,就会重复计算基础值。

补充 · 单位改变时,模型究竟改变什么(通识讲解;演示数据不属于原题)。

演示模型用米作输入:y^=3x+2\hat y=3x+2。同一长度改用厘米表示为 u=100xu=100x,于是 x=u/100x=u/100,原模型等价写成 y^=0.03u+2\hat y=0.03u+2。输入数值放大百倍,斜率必须缩小百倍,才能让同一个对象的预测不变。截距仍是输入为零时的预测,因此没有随长度单位一起乘百倍。

这说明“某个系数大”不能脱离特征单位解释重要性;比较 3 和 0.03 没有发现两个不同规律,只换了表示方式。也说明新样本的特征顺序和单位必须与训练时一致:矩阵维度对了,不代表语义一定对。若训练第一列是面积、第二列是房龄,使用时交换两列通常不会报维度错误,却会产生错误预测。

多个样本为何要按行放(p.12–14)【新】

p.12 rows represent samples, columns represent features.

现在我们想一次算三间房。仍用相同参数,不给每间房重新发一套参数;否则就不能学到跨房子共用的规律。

补充·演示数据:

房子 面积特征 距离特征 暂定模型预测
A 3 2 5+2×3−2=95+2\times3-2=9
B 4 1 5+2×4−1=125+2\times4-1=12
C 2 3 5+2×2−3=65+2\times2-3=6

把表的两列特征取出来,就是数据矩阵:

X=(324123). X=\begin{pmatrix}3&2\\4&1\\2&3\end{pmatrix}.

它有 m=3m=3 行样本、n=2n=2 列特征。大写 XX 存整张数据表,小写 xx 存单个样本;这是本笔记的区分。讲义在不同页对单样本也使用大写符号,阅读时应以尺寸和上下文判断,不能只看字母大小写。

计算 XθX\theta,就是依次拿每一行与同一个系数列做刚才的点积:

Xθ=(3×2+2×(−1)4×2+1×(−1)2×2+3×(−1))=(471). X\theta= \begin{pmatrix} 3\times2+2\times(-1)\\ 4\times2+1\times(-1)\\ 2\times2+3\times(-1) \end{pmatrix} =\begin{pmatrix}4\\7\\1\end{pmatrix}.

每间房都要加基础值,不能只给第一间加 5。令 13\mathbf1_3 表示三个分量均为 1 的列向量,就得到

Y^=Xθ+θ013=(471)+(555)=(9126). \hat Y=X\theta+\theta_0\mathbf1_3 =\begin{pmatrix}4\\7\\1\end{pmatrix} +\begin{pmatrix}5\\5\\5\end{pmatrix} =\begin{pmatrix}9\\12\\6\end{pmatrix}.

Y^\hat Y 是三条预测组成的列,不是一个租金。课件 p.13 简写成矩阵乘积加标量截距;这里把全 1 向量展开,只是让“每行都加”的含义明确。

维度可以当作计算前的检查工具:

(3×2)(2×1)=(3×1). (3\times2)(2\times1)=(3\times1).

中间的两个 2 匹配,说明有两种特征,每种都有系数;留下外面的 3 和 1,说明得到三个样本各一个预测。若标签也是三个真实租金,它应有相同的 3×13\times1 形状,才能逐行比较。

p.14 换成“按列看”。面积列乘 2 得 (6,8,4)T(6,8,4)^T,距离列乘 -1 得 (−2,−1,−3)T(-2,-1,-3)^T;两列贡献相加得 (4,7,1)T(4,7,1)^T,再加基础值得 (9,12,6)T(9,12,6)^T。按行是在问“这间房怎样算”,按列是在问“这个特征给所有房子贡献多少”;两者是同一个结果。

小检查:如果新增第四间房,但特征仍是面积、距离,需要新增一个系数吗?矩阵哪一边改变?

参考答案 · 样本数和特征数

不需要新增系数。多一条样本只增加一行,矩阵由 3×23\times2 变为 4×24\times2,预测由三项变为四项;系数仍是 2×12\times1。若新增的是“楼层”这个特征,才增加一列和相应系数。

截距如何进入矩阵,平面在哪里(p.15–16)

p.15 Then insert a column filled with ones to X.

刚才矩阵相乘以后还要另加截距。为了让求解器用一次乘法完成,p.15 在每一行前加常数 1,并把截距放在参数向量最前面。此处暂称新矩阵 AA,避免与尚未加列的 XX 混淆:

A=(132141123),β=(52−1). A=\begin{pmatrix}1&3&2\\1&4&1\\1&2&3\end{pmatrix},\qquad \beta=\begin{pmatrix}5\\2\\-1\end{pmatrix}.

现在第一行的点积为 1×5+3×2+2×(−1)=91\times5+3\times2+2\times(-1)=9。前面的 1 让截距“原样进入”每条预测;它不是房子的一个新测量值,也不是新增的一间房。

Y^=Aβ=(9126). \hat Y=A\beta=\begin{pmatrix}9\\12\\6\end{pmatrix}.

一般有 mm 条样本、nn 个测量特征时,AA 的形状是 m×(n+1)m\times(n+1),β\beta 为 (n+1)×1(n+1)\times1。这里多出来的 1 是常数特征。后文常把增广后的矩阵继续叫 XX,把含截距参数继续叫 θ\theta;看式子前务必先确认截距是否已经吸收进去。

如果误添一行 1,就变成多一个样本,而不是让所有样本多一个特征。这也是为什么“行是样本、列是特征”值得一直保留在脑中。

图(p.16):两个输入特征的线性回归平面。 元素:三个视角都包含两个特征坐标轴和一个输出轴;黑色样本点围绕蓝色拟合平面分布。 看什么:两种输入加一个输出,需要三维画布;平面给每对输入一个预测高度。

一维输入时,可以把“面积、租金”画成二维中的点和直线。二维输入时,“面积、距离、租金”变成三维中的点和平面。更多输入超出容易画图的范围,但加权相加的计算没有变。

还要区别另一种空间:这里每个点是一间房;而 Part 5 把“所有房子的预测值”放在一个向量里,讨论的是样本数维的空间。三间房的预测向量有三项,十间房就有十项。样本空间中的投影,不是这张房租散点图里把每个点垂直投到直线。 初读先把本篇的逐行计算弄熟,再选读这个几何解释。

补充边界: 本篇三套房的自取特征例仅用于演示矩阵乘法;两项特征在各行之和都为 5,因此加入常数列后列相关。不要拿这张小表直接假设正规方程中的矩阵可逆;可逆性在 Part 2 与 ESTR Part 5 另行讨论。

**p.16 的一般维度结论:**每个观测点是 (x1,…,xn,y)(x_1,\ldots,x_n,y),共有 n+1n+1 个坐标;预测关系 y=θ0+∑jθjxjy=\theta_0+\sum_j\theta_jx_j 用 nn 个自由输入决定最后一个坐标,所以拟合对象是其中的 nn 维超平面。“超平面”是直线和平面向高维的统一名称,不是另加一种模型。

补充:前面的三条租金样本为什么分不清三个参数

沿用正文的教学数据,增广矩阵三行为 (1,3,2)(1,3,2)、(1,4,1)(1,4,1)、(1,2,3)(1,2,3)。每一行后两个数都相加为5,因此把参数改动取为 v=(−5,1,1)Tv=(-5,1,1)^T,每行点积均为 −5+x1+x2=0-5+x_1+x_2=0。这说明 X~v=0\widetilde Xv=0:数据看不见这个改动。

原参数 β=(5,2,−1)T\beta=(5,2,-1)^T 产生预测 (9,12,6)T(9,12,6)^T。令 β′=β+v=(0,3,0)T\beta'=\beta+v=(0,3,0)^T,三次预测分别为 0+3×3+0×2=90+3\times3+0\times2=9、3×4=123\times4=12、3×2=63\times2=6,完全相同。实际上任何实数 tt 给出的

β(t)=(5−5t,  2+t,  −1+t)T \beta(t)=(5-5t,\;2+t,\;-1+t)^T

都产生同样的训练预测,因为新增部分是 tX~v=0t\widetilde Xv=0。所以三条样本对应三个参数,并不能仅凭数量断定参数唯一。

在训练集以外,差异会出现。自取新输入 (3,3)(3,3):原参数预测 5+6−3=85+6-3=8,新参数预测9。这条输入的特征和不再为5,原先隐藏的差异显露出来。由此区分三个结论:训练预测相同、参数相同、新样本预测相同;前一项不能自动推出后两项。Part 5会用“零空间”统一描述这种现象,这里先用逐行算术看懂它。

本讲核心考点

  • 先分清输入特征、训练标签与待学参数;给新输入算输出不是重新训练。(p.4、9–11,概念理解)
  • 一间房多一个特征,增加一个系数;多一间房,只增加一行计算。(p.12–14)
  • 行乘列是对应相乘再求和;按行、按列只是同一预测的两种视角。(p.11–14)
  • 常数列吸收截距,改变记法,不改变预测;不能重复加截距。(p.15)
  • 能代入训练范围外的数,不保证外推可靠。(p.6–8 的建模问题,补充边界)

附录

A1 作业/往年题演练(非讲义内容):回归与分类

旧版笔记在这里引用 2023 ESTR 卷关于回归与分类区别的题目。本篇保留这个学习定位,但本轮以当前 L02 p.4 的回归定义和 L03 的分类主题解释,不把旧卷当作本学期必考承诺。

给一间房估计租金,是预测数量;判断它属于“高租金”还是“低租金”类别,是分类。两者可以使用相同的输入,但希望输出的含义不同。分类器常先输出某类的概率,这个概率虽然也是一个数,最终任务仍是区别类别;因此不能把“程序输出了数字”当作区分任务的唯一方法。

小检查:预测明天温度,与判断明天是否超过 30 摄氏度,分别是什么任务?

参考答案 · 任务的输出含义

预测具体温度是回归;判是否超过阈值是二分类。后者即使输出“超过阈值的概率”,也是为分类问题服务。

回到正文:回归中的输入、输出与“线性”

来源与证据

  • 当前来源:L02-Linear-Regression-2026T1.pdf(本地课件),实际 PDF p.1–16;p.6 数据表、散点与 p.16 三维图已按渲染页核对。行政版本以本文件名所标 2026T1 为准。
  • 房子 A/B/C 和简化预测系数是文中明确标注的教学自取例,不是课件租金表的拟合结果。原页只展示部分训练表,未伪造完整拟合参数。
  • 本篇是当前知识讲解,不声称预测本学期考试要求;旧版考试引用不作为本轮新增证据。