单变量最小二乘法

Univariate Least Squares

单变量线性回归模型是一个线性方程:y=w0+w1xy = w_0 + w_1 x。学习这样的模型需要将其拟合到训练数据样本 (x1,y1),,(xn,yn)(x_1, y_1), \ldots, (x_n, y_n) 上,以最小化损失函数(通常是均方误差,MSE):

L=1ni=1n(yi(w0+w1xi))2\mathcal{L} = \frac{1}{n} \sum_{i=1}^{n} (y_i - (w_0 + w_1 x_i))^2

为了找到最小化该误差函数的最佳参数 w0w_0w1w_1,我们需要找到误差梯度 Lw0\frac{\partial \mathcal{L}}{\partial w_0}Lw1\frac{\partial \mathcal{L}}{\partial w_1}。因此,我们需要通过求偏导数来推导这些表达式,将其设为零,并求解 w0w_0w1w_1

  1. 推导单变量线性回归模型的最小二乘估计(MSE 损失函数的最小化)
  • w0w_0 求偏导数并设为零:

    Lw0=2ni=1n(yiw0w1xi)=0\frac{\partial \mathcal{L}}{\partial w_0} = -\frac{2}{n} \sum_{i=1}^{n} (y_i - w_0 - w_1 x_i) = 0

    解得:

    w0=yw1xw_0 = \overline{y} - w_1 \overline{x}

    其中,x\overline{x}y\overline{y} 分别是 xxyy 的均值。

  • w1w_1 求偏导数并设为零:

    Lw1=2ni=1nxi(yiw0w1xi)=0\frac{\partial \mathcal{L}}{\partial w_1} = -\frac{2}{n} \sum_{i=1}^{n} x_i (y_i - w_0 - w_1 x_i) = 0

    w0w_0 的表达式代入,解得:

    w1=i=1n(xix)(yiy)i=1n(xix)2w_1 = \frac{\sum_{i=1}^{n} (x_i - \overline{x})(y_i - \overline{y})}{\sum_{i=1}^{n} (x_i - \overline{x})^2}

  • 最小二乘估计为:

w0=yw1x,w1=Cov(x,y)Var(x)w_0 = \overline{y} - w_1 \overline{x}, \quad w_1 = \frac{\text{Cov}(x, y)}{\text{Var}(x)}

  1. 证明数据的质心,即点 (x,y)(\overline{x}, \overline{y}),始终位于最小二乘回归线上
  • 证明:
    根据最小二乘估计,回归线方程为:

    y=w0+w1xy = w_0 + w_1 x

    x=xx = \overline{x} 代入,得到:

    y=w0+w1x=(yw1x)+w1x=yy = w_0 + w_1 \overline{x} = (\overline{y} - w_1 \overline{x}) + w_1 \overline{x} = \overline{y}

    因此,点 (x,y)(\overline{x}, \overline{y}) 位于回归线上。
  1. 尝试解决以下带有 L2L2 正则化的线性回归损失函数,其中我们添加了一个惩罚项,惩罚 w1w_1 的大小。设 λ>0\lambda > 0,考虑正则化损失

L(w0,w1)=1ni=1n(yi(w0+w1xi))2+λw12\mathcal{L}(w_0, w_1) = \frac{1}{n} \sum_{i=1}^{n} (y_i - (w_0 + w_1 x_i))^2 + \lambda w_1^2

  • 求解步骤:

    1. w0w_0 求偏导数并设为零,得到与普通最小二乘法相同的解:

    w0=yw1xw_0 = \overline{y} - w_1 \overline{x}

    1. w1w_1 求偏导数并设为零:

    Lw1=2ni=1nxi(yiw0w1xi)+2λw1=0\frac{\partial \mathcal{L}}{\partial w_1} = -\frac{2}{n} \sum_{i=1}^{n} x_i (y_i - w_0 - w_1 x_i) + 2 \lambda w_1 = 0

    1. 代入 w0w_0 的表达式,解得:

    w1=i=1n(xix)(yiy)i=1n(xix)2+nλw_1 = \frac{\sum_{i=1}^{n} (x_i - \overline{x})(y_i - \overline{y})}{\sum_{i=1}^{n} (x_i - \overline{x})^2 + n \lambda}

  • 结论:
    正则化后的 w1w_1 比普通最小二乘法的 w1w_1 更小,体现了正则化对参数大小的惩罚。

多变量最小二乘法

Multivariate Least Squares

在多变量线性回归中,我们推广单变量线性回归到具有 pp 个特征的情况。设 x1,x2,,xnx_1, x_2, \ldots, x_nRp\mathbb{R}^p 中的 nn 个特征向量(例如,对应于 nn 个实例),即:

xi=[xi0xi1xip1]x_i = \begin{bmatrix} x_{i0} \\ x_{i1} \\ \vdots \\ x_{ip-1} \end{bmatrix}

我们将这些特征向量堆叠成一个矩阵 XRn×pX \in \mathbb{R}^{n \times p},称为设计矩阵。惯例是将特征向量堆叠起来,使得 XX 的每一行对应于一个特定的实例,即:

X=[x1Tx2TxnT]=[x10x11x1,p1x20x21x2,p1xn0xn1xn,p1]X = \begin{bmatrix} x_1^T \\ x_2^T \\ \vdots \\ x_n^T \end{bmatrix} = \begin{bmatrix} x_{10} & x_{11} & \cdots & x_{1,p-1} \\ x_{20} & x_{21} & \cdots & x_{2,p-1} \\ \vdots & \vdots & \cdots & \vdots \\ x_{n0} & x_{n1} & \cdots & x_{n,p-1} \end{bmatrix}

其中上标 TT 表示转置操作。通常将特征向量的第一个元素设为 1,以考虑偏置项,因此我们假设 xi0=1x_{i0} = 1 对于所有 i=1,,ni = 1, \ldots, n。目标是学习一个权重向量 wRpw \in \mathbb{R}^p,并进行预测:

y^i=wTxi=w0+w1xi1+w2xi2++wp1xi,p1\hat{y}_i = w^T x_i = w_0 + w_1 x_{i1} + w_2 x_{i2} + \cdots + w_{p-1} x_{i,p-1}

其中 y^i\hat{y}_i 表示第 ii 个预测值。为了求解 ww 中的最优权重,我们可以使用均方误差(MSE)作为损失函数:

L(w)=1nyXw22\mathcal{L}(w) = \frac{1}{n} \| y - X w \|_2^2

其中 2\| \cdot \|_2 是欧几里得范数。在本问题的其余部分,我们将假设 XX 是一个满秩矩阵,这意味着我们可以计算 XTXX^T X 的逆。


  1. 证明 L(w)\mathcal{L}(w) 有一个临界点 w^=(XTX)1XTy\hat{w} = (X^T X)^{-1} X^T y
  • 证明步骤:
    1. 展开损失函数:

      L(w)=1n(yXw)T(yXw)\mathcal{L}(w) = \frac{1}{n} (y - X w)^T (y - X w)

    2. ww 求梯度并设为零:

      wL(w)=2nXT(yXw)=0\nabla_w \mathcal{L}(w) = -\frac{2}{n} X^T (y - X w) = 0

      解得:

      XTXw=XTyw=(XTX)1XTyX^T X w = X^T y \quad \Rightarrow \quad w = (X^T X)^{-1} X^T y

  1. 证明临界点 w^\hat{w} 是全局最小化器
  • 证明:
    由于损失函数 L(w)\mathcal{L}(w) 是凸函数,其临界点即为全局最小化器。
  1. 写出 p=2p = 2 情况下的矩阵和向量
  • 假设 p=2p = 2,设计矩阵 XX 和向量 yy 为:

X=[1x111x211xn1],y=[y1y2yn],w=[w0w1]X = \begin{bmatrix} 1 & x_{11} \\ 1 & x_{21} \\ \vdots & \vdots \\ 1 & x_{n1} \end{bmatrix}, \quad y = \begin{bmatrix} y_1 \\ y_2 \\ \vdots \\ y_n \end{bmatrix}, \quad w = \begin{bmatrix} w_0 \\ w_1 \end{bmatrix}

  • 计算:

XTX=[nxi1xi1xi12],XTy=[yixi1yi]X^T X = \begin{bmatrix} n & \sum x_{i1} \\ \sum x_{i1} & \sum x_{i1}^2 \end{bmatrix}, \quad X^T y = \begin{bmatrix} \sum y_i \\ \sum x_{i1} y_i \end{bmatrix}

  1. 计算 p=2p = 2 情况下的最小二乘估计
  • 根据公式:

w=(XTX)1XTyw = (X^T X)^{-1} X^T y

  1. 手工和 Python 实现最小二乘法
  • 给定数据:

x=[3,6,7,8,11],y=[3,13,8,11,2,6]x = [3, 6, 7, 8, 11], \quad y = [3, 13, 8, 11, 2, 6]

  • 手工计算:

    1. 计算 XTXX^T XXTyX^T y
    2. 求解 w=(XTX)1XTyw = (X^T X)^{-1} X^T y
  • Python 实现:

1
2
3
4
5
6
7
8
9
10
11
import numpy as np
from sklearn.linear_model import LinearRegression

X = np.array([[1, 3], [1, 6], [1, 7], [1, 8], [1, 11]])
y = np.array([3, 13, 8, 11, 2])

w = np.linalg.inv(X.T @ X) @ X.T @ y
print("手工计算的最小二乘估计:", w)

model = LinearRegression().fit(X[:, 1:], y)
print("sklearn 的最小二乘估计:", model.intercept_, model.coef_)
  1. 伪逆的使用
  • 如果 XTXX^T X 不可逆,可以使用伪逆 X+X^+ 计算最小二乘解:

w=X+yw = X^+ y

  1. 特征映射
    特征映射将原始特征转换为更高维的特征空间,例如多项式回归。在最小二乘法中,可以通过设计矩阵 XX 实现特征映射。

  2. MSE 和 SSE 的关系

  • 真,因为 argmin\arg\min 只与损失函数的形状有关,与缩放无关。
  • 假,因为 min\min 值受缩放影响。

总体与样本参数

总体和样本的区别

总体是研究对象的全集,样本是从总体中抽取的子集。

总体参数的估计

总体参数是描述总体的特征(如均值、方差),通过样本统计量(如样本均值、样本方差)估计。