广义加性模型原理
Published:
广义加性模型(Generalized Additive Model,GAM)用于描述响应变量与多个预测变量之间的非线性关系,同时保留较好的可解释性。
一、基本介绍
设样本集为
\[\{(x_{k,1},x_{k,2},\cdots,x_{k,p},y_k)\mid 1\le k\le N\},\]其中,$k$ 为样本索引,$N$ 为样本量,$p$ 为特征维数。GAM 的一般形式为
\[g(\mu_k)=\beta_0+\sum_{i=1}^{p} f_i(x_{k,i}), \qquad \mu_k=\mathbb{E}(y_k\mid x_{k,1},\cdots,x_{k,p}),\]其中:
- $g(\cdot)$ 是链接函数;
- $\mu_k$ 是条件均值;
- $\beta_0$ 是截距项;
- $f_i(\cdot)$ 是第 $i$ 个特征对应的平滑函数。
当响应变量服从高斯分布且取恒等链接 $g(\mu)=\mu$ 时,上式退化为更熟悉的加性回归形式:
\[y_k=\beta_0+\sum_{i=1}^{p} f_i(x_{k,i})+\varepsilon_k,\]其中通常假设 $\varepsilon_k \overset{\text{i.i.d.}}{\sim} \mathcal{N}(0,\sigma^2)$。
需要注意的是,GAM 中截距项与各个平滑函数之间存在可辨识性问题。为使分解唯一,通常需要施加约束,例如
\[\sum_{k=1}^{N} f_i(x_{k,i})=0, \qquad i=1,2,\cdots,p.\]这样可以避免平滑函数中的常数部分与截距项 $\beta_0$ 混淆。
二、单特征拟合
以下为便于说明,先考虑单特征情形,并假设响应变量为高斯型且采用恒等链接。此时模型写为
\[y_k=\beta_0+f(x_k)+\varepsilon_k.\]这里将唯一的平滑函数记为 $f(\cdot)$。常见的平滑表示方式包括:
- 多项式回归:$f(x)=\beta_1 x+\beta_2 x^2+\cdots+\beta_d x^d$;
- 回归样条:$f(x)=\sum_{j=1}^{m} \beta_j B_j(x)$;
- 平滑样条:在样条表示基础上加入平滑惩罚;
- 核回归:通过核函数对邻近样本加权;
- 局部加权回归:在局部邻域内做加权拟合。
其中,样条基函数展开是最常用的形式之一。
2.1 基函数展开
设选择了 $m$ 个基函数 $B_1(x),\cdots,B_m(x)$,则可将平滑函数写为
\[f(x)=\sum_{j=1}^{m} \beta_j B_j(x).\]因此,对任意一个样本点 $x_k$,都有
\[f(x_k)=\sum_{j=1}^{m} \beta_j B_j(x_k),\]从而模型可表示为
\[y_k=\beta_0+\sum_{j=1}^{m} \beta_j B_j(x_k)+\varepsilon_k.\]这里需要强调:上式只是对函数 $f(x)$ 的表示方式,并不意味着仅凭单个样本点 $(x_k,y_k)$ 就能估计全部参数。参数估计必须依赖多个样本点共同完成。
在实际应用中,常选用 B 样条作为基函数,因为它兼具局部支撑性、数值稳定性和较强的拟合能力。通过调整基函数个数 $m$ 及节点位置,可以控制模型复杂度与拟合效果 1。
2.2 单特征多点拟合
给定 $N$ 个样本点 $(x_k,y_k)$,将上式对所有样本同时写出,可得矩阵形式
\[\mathbf{y}=\mathbf{B}\boldsymbol{\beta}+\boldsymbol{\varepsilon},\]其中
\[\mathbf{y}=\begin{pmatrix}y_1\\y_2\\\vdots\\y_N\end{pmatrix}, \quad \mathbf{B}=\begin{pmatrix} 1 & B_1(x_1) & B_2(x_1) & \cdots & B_m(x_1) \\ 1 & B_1(x_2) & B_2(x_2) & \cdots & B_m(x_2) \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 1 & B_1(x_N) & B_2(x_N) & \cdots & B_m(x_N) \end{pmatrix},\] \[\boldsymbol{\beta}=\begin{pmatrix}\beta_0\\\beta_1\\\beta_2\\\vdots\\\beta_m\end{pmatrix}, \quad \boldsymbol{\varepsilon}=\begin{pmatrix}\varepsilon_1\\\varepsilon_2\\\vdots\\\varepsilon_N\end{pmatrix}.\]其中,设计矩阵 $\mathbf{B}\in\mathbb{R}^{N\times(m+1)}$ 的第一列对应截距项,其余各列对应基函数在样本点处的取值。
若暂不考虑平滑惩罚,则可通过最小二乘法求解
\[\begin{aligned} \min_{\boldsymbol{\beta}}\ \|\mathbf{y}-\mathbf{B}\boldsymbol{\beta}\|_2^2 &=\min_{\beta_0,\beta_1,\cdots,\beta_m} \sum_{k=1}^{N}\left(y_k-\beta_0-\sum_{j=1}^{m}\beta_j B_j(x_k)\right)^2. \end{aligned}\]当 $\mathbf{B}^\top \mathbf{B}$ 可逆时,最小二乘解为
\[\hat{\boldsymbol{\beta}}=(\mathbf{B}^\top \mathbf{B})^{-1}\mathbf{B}^\top \mathbf{y}.\]若 $\mathbf{B}^\top \mathbf{B}$ 不可逆,则通常需要使用广义逆或引入正则化。
2.3 惩罚回归
当基函数个数 $m$ 较大时,仅最小化残差平方和虽然能提高训练集拟合程度,但也更容易导致过拟合,即拟合曲线过于波动、泛化能力下降。
为控制平滑函数的复杂度,通常在损失函数中加入惩罚项,得到
\[\min_{\beta_0,\beta_1,\cdots,\beta_m} \sum_{k=1}^{N}\left(y_k-\beta_0-\sum_{j=1}^{m}\beta_j B_j(x_k)\right)^2 + \lambda J(f),\]其中:
- 第一项为残差平方和,用于衡量拟合误差;
- 第二项 $\lambda J(f)$ 为惩罚项,用于控制函数复杂度;
- $\lambda\ge 0$ 为平滑参数,用于平衡拟合精度与平滑程度。
常见的惩罚形式是函数曲率的平方积分:
\[J(f)=\int \bigl(f''(x)\bigr)^2\,dx.\]其含义是:若函数二阶导数较大,说明曲线弯曲更剧烈,则惩罚更强;若函数更平滑,则惩罚更小。
平滑参数 $\lambda$ 的作用可概括为:
- 当 $\lambda=0$ 时,模型退化为普通最小二乘拟合;
- 当 $\lambda$ 较小时,模型更强调贴合数据;
- 当 $\lambda$ 较大时,模型更强调函数平滑;
- 当 $\lambda\to\infty$ 时,函数会被强烈约束到更简单的形式。
在矩阵形式下,惩罚回归通常写为
\[\min_{\boldsymbol{\beta}}\ \|\mathbf{y}-\mathbf{B}\boldsymbol{\beta}\|_2^2 + \lambda\,\boldsymbol{\beta}^\top \mathbf{\Omega}\boldsymbol{\beta},\]其中 $\mathbf{\Omega}$ 是由基函数及其导数构造出的惩罚矩阵。若不对截距项施加惩罚,则通常令 $\mathbf{\Omega}$ 的第一行和第一列为零。
当矩阵 $\mathbf{B}^\top\mathbf{B}+\lambda\mathbf{\Omega}$ 可逆时,解可写为
\[\hat{\boldsymbol{\beta}}= \left(\mathbf{B}^\top\mathbf{B}+\lambda\mathbf{\Omega}\right)^{-1}\mathbf{B}^\top\mathbf{y}.\]因此,GAM 的核心思想之一就是:通过“基函数展开 + 平滑惩罚”的方式,在保留非线性拟合能力的同时抑制过拟合。
三、多特征拟合
在多特征情形下,GAM 假设每个特征都对应一个平滑函数。在高斯响应、恒等链接的设定下,模型写为
\[y_k=\beta_0+\sum_{i=1}^{p} f_i(x_{k,i})+\varepsilon_k.\]例如,当 $p=2$ 时,有
\[y_k=\beta_0+f_1(x_{k,1})+f_2(x_{k,2})+\varepsilon_k.\]这种结构能够分别刻画各个特征对响应变量的非线性影响,同时保持较强的可解释性。
若对每个特征 $x_{k,i}$ 都选取 $m_i$ 个基函数 $B_{i,1}(\cdot),\cdots,B_{i,m_i}(\cdot)$,则第 $i$ 个平滑函数可表示为
\[f_i(x)=\sum_{j=1}^{m_i} \beta_{i,j} B_{i,j}(x).\]于是整体模型可写为
\[y_k=\beta_0+\sum_{i=1}^{p}\sum_{j=1}^{m_i}\beta_{i,j}B_{i,j}(x_{k,i})+\varepsilon_k.\]将所有样本写成矩阵形式,仍可记为
\[\mathbf{y}=\mathbf{B}\boldsymbol{\beta}+\boldsymbol{\varepsilon},\]其中设计矩阵 $\mathbf{B}$ 的每一行对应一个样本,包含截距项以及所有特征对应的基函数取值,即
\[\mathbf{B}= \begin{bmatrix} 1 & B_{1,1}(x_{1,1}) & \cdots & B_{1,m_1}(x_{1,1}) & B_{2,1}(x_{1,2}) & \cdots & B_{2,m_2}(x_{1,2}) & \cdots & B_{p,1}(x_{1,p}) & \cdots & B_{p,m_p}(x_{1,p}) \\ 1 & B_{1,1}(x_{2,1}) & \cdots & B_{1,m_1}(x_{2,1}) & B_{2,1}(x_{2,2}) & \cdots & B_{2,m_2}(x_{2,2}) & \cdots & B_{p,1}(x_{2,p}) & \cdots & B_{p,m_p}(x_{2,p}) \\ \vdots & \vdots & \ddots & \vdots & \vdots & \ddots & \vdots & \cdots & \vdots & \ddots & \vdots \\ 1 & B_{1,1}(x_{N,1}) & \cdots & B_{1,m_1}(x_{N,1}) & B_{2,1}(x_{N,2}) & \cdots & B_{2,m_2}(x_{N,2}) & \cdots & B_{p,1}(x_{N,p}) & \cdots & B_{p,m_p}(x_{N,p}) \end{bmatrix}.\]相应地,参数向量为
\[\boldsymbol{\beta}= \begin{bmatrix} \beta_0 \\ \beta_{1,1} \\ \vdots \\ \beta_{1,m_1} \\ \beta_{2,1} \\ \vdots \\ \beta_{2,m_2} \\ \vdots \\ \beta_{p,1} \\ \vdots \\ \beta_{p,m_p} \end{bmatrix}, \qquad \boldsymbol{\varepsilon}= \begin{bmatrix} \varepsilon_1 \\ \varepsilon_2 \\ \vdots \\ \varepsilon_N \end{bmatrix}.\]若采用惩罚估计,则优化问题可写为
\[\min_{\boldsymbol{\beta}} \ \|\mathbf{y}-\mathbf{B}\boldsymbol{\beta}\|_2^2 + \sum_{i=1}^{p} \lambda_i J(f_i),\]其中 $\lambda_i\ge 0$ 是第 $i$ 个平滑函数对应的平滑参数。若为简化起见,也可以取统一的平滑参数,即令 $\lambda_1=\cdots=\lambda_p=\lambda$。
常见的惩罚项形式为
\[J(f_i)=\int \bigl(f_i''(x)\bigr)^2\,dx, \qquad i=1,2,\cdots,p.\]于是总体惩罚可写为
\[\sum_{i=1}^{p} \lambda_i J(f_i) = \sum_{i=1}^{p} \lambda_i \int \bigl(f_i''(x)\bigr)^2\,dx.\]在矩阵形式下,上式可进一步写为
\[\min_{\boldsymbol{\beta}}\ \|\mathbf{y}-\mathbf{B}\boldsymbol{\beta}\|_2^2 + \boldsymbol{\beta}^\top \mathbf{\Omega}\boldsymbol{\beta},\]其中 $\mathbf{\Omega}$ 通常为分块对角矩阵,其各个分块分别对应不同平滑函数的惩罚矩阵,截距项对应的分块取零。
综上,GAM 通过将高维非线性关系分解为若干个一维平滑函数之和,在模型灵活性与可解释性之间取得了较好的平衡。
