Logo

机器学习和线性模型

1. 机器学习的基本概念

在机器学习中,线性模型 (linear models) ~(\textbf{linear models})~是一种用于根据输入变量(自变量)预测输出变量(因变量)的基本方法。它通过建立输入与输出之间的线性关系来进行预测,一种常见的方式是通过最小二乘法拟合 (fitting) ~(\textbf{fitting})~直线或某些可线性化的曲线(如多项式曲线)。例如,下图就是根据国家统计局发布的 2013-2024 年中国居民人均收入和支出数据 ,并使用最小二乘法拟合出来的两条直线。

开通会员解锁全部动画

机器学习 (machine learning) ~(\textbf{machine learning})~的本质就是通过训练数据学习并构建模型,进而根据模型进行预测。不过,机器学习并不限于线性模型。当数据趋势无法用直线拟合时,可能需要使用更复杂的曲线,如指数回归或对数回归;此外,机器学习还包含能够处理复杂非线性关系的模型,如决策树、支持向量机和神经网络。尽管机器学习包含许多复杂模型,线性模型因其计算简单、易于解释,在许多任务中仍然广泛使用。

2. 最小二乘法与回归直线

在使用最小二乘法建模时,我们需要先通过观察已有数据来选择适合的模型。在前面的示例中,当我们把年份对应的收入或支出数据绘制到图表上后,观察到这些数据点接近一条直线。 接下来的任务就是找到一条最接近真实数据点的直线 y=β0+β1x ~y=\beta_0 + \beta_1 x~作为线性模型,这条直线也被称为 y ~\mathbf{y}~ x ~\mathbf{x}~的回归直线(line of regression of (\textbf{line of regression of }y on x)\textbf{y on x}),直线方程的系数 β1, β2 ~\boldsymbol{\beta_1},~\boldsymbol{\beta_2}~被称为回归系数(regression coefficients)(\textbf{regression coefficients})

开通会员解锁全部动画

在回归分析中,实际值 yi ~y_i~和预测值 yi^ ~\hat{y_i}~之间的差值称为残差(residual, ϵi=yiyi^)(\textbf{residual},~\epsilon_i = y_i - \hat{y_i}),描述回归直线最接近实际值的方法通常是使得残差平方之和最小。 由于实际数据并不完全在一条直线上,那么用实际值构建出的方程组一定是不相容的:
{β0+β1x1=y1β0+β1x2=y2     β0+β1xn=yn\begin{cases} \beta_0 + \beta_{1}x_1 = y_1 \\[0.5ex] \beta_0 + \beta_{1}x_2 = y_2 \\[0.5ex] \quad ~ ~ \vdots \quad \quad ~ ~ \, ~ \vdots \\[0.5ex] \beta_0 + \beta_{1}x_n = y_n \end{cases}
方程组可以写成下面的矩阵形式:
Xβ=y,其中X=[1x11x21xn],β=[β0β1],y=[y1y2yn](1)\mathbf{X} \boldsymbol{\beta} = \mathbf{y}, \quad \text{其中} \quad \mathbf{X} = \begin{bmatrix} 1 & x_1 \\ 1 & x_2 \\ \vdots & \vdots \\ 1 & x_n \end{bmatrix}, \quad \boldsymbol{\beta} = \begin{bmatrix} \beta_0 \\ \beta_1 \end{bmatrix}, \quad \mathbf{y} = \begin{bmatrix} y_1 \\ y_2 \\ \vdots \\ y_n \end{bmatrix} \quad \tag{1}
(1) (1)~式是工程上的常见写法, X ~\mathbf{X}~被称作设计矩阵(design matrix)(\textbf{design matrix})β\boldsymbol{\beta}参数向量(parameter vector)(\textbf{parameter vector}) y ~\mathbf{y}~观测向量(observation vector)(\textbf{observation vector})。我们要找到参数向量 β ~\boldsymbol{\beta}~使得残差向量 (residual vector, ϵ=yXβ) ~(\textbf{residual vector},~\boldsymbol{\epsilon} = \mathbf{y} - \mathbf{X}\boldsymbol{\beta})~的残差平方和最小化,这就是一个典型的最小二乘问题。 最小二乘解满足下面的法方程:
XTXβ=XTy\mathbf{X}^T\mathbf{X}\boldsymbol{\beta} = \mathbf{X}^T\mathbf{y}

3. 最小二乘法求解拟合直线

为了更直观地理解最小二乘法的应用,我们通过具体示例来演示如何找到最佳拟合直线,使其最小化误差平方和。给定数据(2,1),(2,1),(5,2),(5,2),(7,3),(7,3),(8,3)(8,3), 下面使用最小二乘法计算最佳拟合直线的方程y=β0+β1xy = \beta_0 + \beta_1 x

  1. 构造设计矩阵和观测向量
    设计矩阵 X ~\mathbf{X}~的第一列为 1 ~1~(对应截距 β ~\beta~),第二列为自变量 x ~x~。观测向量 y ~\mathbf{y}~存放因变量。
    X=[12151718],y=[1233]\mathbf{X} = \begin{bmatrix} 1 & 2 \\ 1 & 5 \\ 1 & 7 \\ 1 & 8 \end{bmatrix}, \quad \mathbf{y} = \begin{bmatrix} 1 \\ 2 \\ 3 \\ 3 \end{bmatrix}
  2. 求解法方程XTXβ=XTy\mathbf{X}^T\mathbf{X}\boldsymbol{\beta} = \mathbf{X}^T\mathbf{y}
    计算 XTX ~\mathbf{X}^T\mathbf{X}~ XTy ~\mathbf{X}^T\mathbf{y}~
    XTX=[11112578][12151718]=[42222142]XTy=[11112578][1233]=[957]\begin{align*}\mathbf{X}^T \mathbf{X} &= \begin{bmatrix} 1 & 1 & 1 & 1 \\ 2 & 5 & 7 & 8 \end{bmatrix} \begin{bmatrix} 1 & 2 \\ 1 & 5 \\ 1 & 7 \\ 1 & 8 \end{bmatrix} = \begin{bmatrix} 4 & 22 \\ 22 & 142 \end{bmatrix} \\[6ex] \mathbf{X}^T \mathbf{y} &= \begin{bmatrix} 1 & 1 & 1 & 1 \\ 2 & 5 & 7 & 8 \end{bmatrix} \begin{bmatrix} 1 \\ 2 \\ 3 \\ 3 \end{bmatrix} = \begin{bmatrix} 9 \\ 57 \end{bmatrix} \end{align*}
    构造方程组:
    [42222142][β0β1]=[957]\begin{bmatrix} 4 & 22 \\ 22 & 142 \end{bmatrix} \begin{bmatrix} \beta_0 \\ \beta_1 \end{bmatrix} = \begin{bmatrix} 9 \\ 57 \end{bmatrix}
  3. 求解参数向量 β ~\boldsymbol{\beta}~
    计算 XTX ~\mathbf{X}^T\mathbf{X}~的逆矩阵并求解:
    [β0β1]=[42222142]1[957]=[2/75/14]\begin{bmatrix} \beta_0 \\ \beta_1 \end{bmatrix} = \begin{bmatrix} 4 & 22 \\ 22 & 142 \end{bmatrix}^{-1} \begin{bmatrix} 9 \\ 57 \end{bmatrix} = \begin{bmatrix}2/7 \\ 5/14\end{bmatrix}
  4. 最终的最小二乘回归方程
    y=27+514xy = \frac{2}{7} + \frac{5}{14} x
在最小二乘法的计算中,我们通常会对设计矩阵 X ~\mathbf{X}~做一些预处理,例如:对 X ~\mathbf{X}~的列进行正交化处理,或者采用 QR ~\mathbf{Q}\mathbf{R}~分解先将 X ~\mathbf{X}~分解为正交矩阵 Q ~\mathbf{Q}~和上三角矩阵 R ~\mathbf{R}~。在做完预处理后,可以用上节讨论过的对应方法进行后面的计算。最终得到的回归直线方程为:
y=27+514xy = \frac{2}{7} + \frac{5}{14}x
将该直线绘制在坐标系中如下所示:

开通会员解锁全部动画

根据直线方程,我们可以预测当输入自变量量分别为 x1=4, x2=6 ~x_1 = 4,~x_2=6~时,对应的因变量 y1=12/7, y2=17/7~y_1 = 12/7,~y_2 = 17/7

4. 一般线性模型

在许多应用中,数据点的趋势可能不是简单的直线关系,而是需要更一般的线性模型来描述。一般线性模型的标准形式为:
y=Xβ+ϵ\mathbf{y} = \mathbf{X} \boldsymbol{\beta} + \boldsymbol{\epsilon}
我们前面介绍的是最简单的线性模型,它只有一个自变量,模型形式为:
y=β0+β1x+ϵy = \beta_0 + \beta_1x + \epsilon
一般的线性模型并不局限于处理一个自变量,它也可以处理多个自变量:
y=β0f0(x)+β1f1(x)++βpfp(x)(2)y = \beta_0 f_0(x) + \beta_1 f_1(x) + \cdots + \beta_p f_p(x)\tag{2}
尽管这个模型可能不是线性的(因为可能包含 x2, x3 ~x^2,~x^3~等非线性项),但它在参数 β0,β1,,βp ~\beta_0,\beta_1,\cdots,\beta_p~上仍然是线性的,因此仍可以使用最小二乘法进行求解。下面分别讨论一般线性模型的其它两种拓展情况:多项式回归 (polynomial regression) ~(\textbf{polynomial regression})~多元线性回归 (multiple linear regression) ~(\textbf{multiple linear regression})~。虽然它们的函数形式看起来是非线性的,但它们依然可以通过线性模型的形式来处理。

4.1 多项式回归

在农业研究中,作物的产量常常与多种因素密切相关,其中温度是一个非常重要的因素。不同的温度条件对作物的生长产生不同的影响。下图展示了某农作物的产量随温度变化的关系,显示了温度对产量的非线性影响。这种关系通常用二次多项式(Quadratic Polynomial Regression)(\textbf{Quadratic Polynomial Regression})回归来建模,以捕捉温度与产量之间的非线性特征。

开通会员解锁全部动画

从数学角度来看,这个二次模型依然是线性模型,因为它在参数 β0,β1,β2 ~\beta_0,\beta_1,\beta_2~上是线性的。对所有 n ~n~个数据点,可以写成如下方程组:
{y1=β0+β1x1+β2x12+ϵ1y2=β0+β1x2+β2x22+ϵ2yn=β0+β1xn+β2xn2+ϵn \begin{cases} \begin{aligned} y_1 &= \beta_0 + \beta_1 x_1 + \beta_2 x_1^2 + \epsilon_1 \\[1ex] y_2 &= \beta_0 + \beta_1 x_2 + \beta_2 x_2^2 + \epsilon_2 \\[1ex] &\vdots \\[1ex] y_n &= \beta_0 + \beta_1 x_n + \beta_2 x_n^2 + \epsilon_n \end{aligned} \end{cases}
使用矩阵表示:
[y1y2yn]=[1x1x121x2x221xnxn2][β0β1β2]+[ϵ1ϵ2ϵn]\begin{bmatrix} y_1 \\ y_2 \\ \vdots \\ y_n \end{bmatrix} = \begin{bmatrix} 1 & x_1 & x_1^2 \\ 1 & x_2 & x_2^2 \\ \vdots & \vdots & \vdots \\ 1 & x_n & x_n^2 \end{bmatrix} \begin{bmatrix} \beta_0 \\ \beta_1 \\ \beta_2 \end{bmatrix} + \begin{bmatrix} \epsilon_1 \\ \epsilon_2 \\ \vdots \\ \epsilon_n \end{bmatrix}
在上述温度与每亩作物产量关系图中,共包含 13 ~13~个观测数据点。为了求解 β=[β0β1β2]T ~\beta = \begin{bmatrix}\beta_0& \beta_1& \beta_2\end{bmatrix}^T~,使用最小二乘法,通过法方程: XTXβ=XTy ~\mathbf{X}^T \mathbf{X} \mathbf{\beta} = \mathbf{X}^T \mathbf{y}~来计算(参考最小二乘法求解)。不过,手工计算非常繁琐且不太实际,我们借助数值计算软件或代码计算,得出以下结果:
y=4.78x2+201.89x867.88 y = -4.78 x^2 + 201.89x -867.88
与二次多项式回归类似,三次多项式回归(Cubic Polynomial Regression)(\textbf{Cubic Polynomial Regression})通过引入 x3 ~x^3~项来进一步提高模型的灵活性,其模型为:
y=β0+β1x+β2x2+β3x3+ϵy = \beta_0 + \beta_1 x + \beta_2 x^2 + \beta_3 x^3 + \epsilon
其矩阵形式为:
[y1y2yn]=[1x1x12x131x2x22x231xnxn2xn3][β0β1β2β3]+[ϵ1ϵ2ϵn]\begin{bmatrix} y_1 \\ y_2 \\ \vdots \\ y_n \end{bmatrix} = \begin{bmatrix} 1 & x_1 & x_1^2 & x_1^3 \\ 1 & x_2 & x_2^2 & x_2^3 \\ \vdots & \vdots & \vdots & \vdots \\ 1 & x_n & x_n^2 & x_n^3 \end{bmatrix} \begin{bmatrix} \beta_0 \\ \beta_1 \\ \beta_2 \\ \beta_3 \end{bmatrix} + \begin{bmatrix} \epsilon_1 \\ \epsilon_2 \\ \vdots \\ \epsilon_n \end{bmatrix}
三次多项式曲线形式如下:

开通会员解锁全部动画

4.2 多元回归

多元回归 (Multiple Regression) ~(\textbf{Multiple Regression})~可以基于多个自变量的输入来预测因变量的值。在最简单的情况下,我们假设有两个自变量 u ~u~ v ~v~,以及一个因变量 y ~y~,它们之间的关系可以通过一个简单的线性方程来描述:
y=β0+β1u+β2vy = \beta_0 + \beta_1 u + \beta_2 v
这个方程的拟合结果是一个平面:
对于更复杂的多元线性模型,还会加入二次项和交互项,以更好地拟合数据中的非线性关系:
y=β0+β1u+β2v+β3u2+β4uv+β5v2y = \beta_0 + \beta_1 u + \beta_2 v + \beta_3 u^2 + \beta_4 uv + \beta_5 v^2
这个方程的拟合结果是一个曲面:
即使在模型中有多项式项或交互项,若所有参数的未知数(即β0,β1,,βk\beta_0,\beta_1,\cdots,\beta_k)是线性的,模型仍然是线性的。例如上面的方程仍然可以通过线性回归来解决。 一般来说,线性模型的形式为:
y=β0f0(u,v)+β1f1(u,v)++βkfk(u,v)y = \beta_0 f_0(u,v) + \beta_1 f_1(u,v) + \cdots + \beta_k f_k(u,v)
其中 f0,f1,,fk ~f_0,f_1,\cdots,f_k~是已知的函数,β0,β1,,βk \beta_0,\beta_1,\cdots,\beta_k~是需要通过数据来估计的参数。其矩阵形式为:
[y1y2yn]=[1u1v11u2v21unvn][β0β1β2]+[ϵ1ϵ2ϵn]\begin{bmatrix} y_1 \\ y_2 \\ \vdots \\ y_n \end{bmatrix} = \begin{bmatrix} 1 & u_1 & v_1 \\ 1 & u_2 & v_2 \\ \vdots & \vdots & \vdots \\ 1 & u_n & v_n \end{bmatrix} \begin{bmatrix} \beta_0 \\ \beta_1 \\ \beta_2 \end{bmatrix} + \begin{bmatrix} \epsilon_1 \\ \epsilon_2 \\ \vdots \\ \epsilon_n \end{bmatrix}
使用最小二乘法求解回归系数时,依然可以通过法方程 XTXβ=XTy ~\mathbf{X}^T\mathbf{X}\boldsymbol{\beta} = \mathbf{X}^T\mathbf{y}~来获得最优解。