回归分析:从线性到深度学习的全面解析
1. 回归任务概述
回归任务旨在根据一组自变量 (X_1, X_2, \cdots, X_d) 来预测一个实值因变量 (Y) 的值。其目标是学习一个函数 (f),使得 (\hat{y} = f(x)),其中 (\hat{y}) 是给定输入点 (x) 时的预测响应值。与分类任务不同,回归任务的响应变量是实值的。回归是一种监督学习方法,使用包含点 (x_i) 及其真实响应值 (y_i) 的训练数据集来学习模型参数。训练完成后,模型可用于预测新测试点的响应。
2. 线性回归
线性回归假设回归函数 (f) 是模型参数的线性函数,即 (f(X) = \beta + \omega_1X_1 + \omega_2X_2 + \cdots + \omega_dX_d = \beta + \omega^T X)。其中,(\beta) 是真实(未知)的偏置项,(\omega_i) 是属性 (X_i) 的真实(未知)回归系数或权重,(\omega = (\omega_1, \omega_2, \cdots, \omega_d)^T) 是真实的 (d) 维权重向量。
由于真实的偏置和回归系数未知,需要从训练数据集 (D) 中进行估计。给定训练数据 (D) 中的点 (x_i) 和响应值 (y_i),通常使用最小二乘法来预测偏置和回归系数,即最小化残差平方和(SSE):
[SSE = \sum_{i=1}^{n} \epsilon_i^2 = \sum_{i=1}^{n} (y_i - \hat{y}
i)^2 = \sum
{i=1}^{n} (y_i - b - w^T x_i)^2]
2.1 二元回归
当输入数据 (D) 包含一个预测属性 (X) 和一个响应变量 (Y) 时,回归函数为 (\hat{y}_i = f(x_i) = b + w \cdot x_i)。要找到斜率为 (w)、截距为 (b) 的最佳拟合直线,需要最小化残差平方和。
通过对 (SSE) 分别关于 (b) 和 (w) 求偏导数并令其为 0,可以得到:
[b = \mu_Y - w \cdot \mu_X]
[w = \frac{\sum_{i=1}^{n} (x_i - \mu_X)(y_i - \mu_Y)}{\sum_{i=1}^{n} (x_i - \mu_X)^2} = \frac{\sigma_{XY}}{\sigma_X^2} = \frac{\text{cov}(X, Y)}{\text{var}(X)}]
其中,(\mu_X) 和 (\mu_Y) 分别是 (X) 和 (Y) 的样本均值,(\sigma_X^2) 是 (X) 的方差,(\sigma_{XY}) 是 (X) 和 (Y) 的协方差。
例如,在鸢尾花数据集的花瓣长度((X))和花瓣宽度((Y))的回归中,计算得到 (w = 0.4164),(b = -0.3665),拟合的回归直线为 (\hat{y} = -0.3665 + 0.4164 \cdot x),SSE 值为 6.343。
二元回归的几何解释如下:
- 可以将 (n) 个方程 (y_i = b + w \cdot x_i) 表示为一个向量方程 (\hat{Y} = b \cdot 1 + w \cdot X),其中 (1) 是 (n) 维全 1 向量。这表明预测向量 (\hat{Y}) 是 (1) 和 (X) 的线性组合,必须位于由 (1) 和 (X) 张成的列空间中。
- 最优的 (\hat{Y}) 是 (Y) 在由 (1) 和 (X) 张成的子空间上的正交投影,残差误差向量 (\epsilon = Y - \hat{Y}) 与该子空间正交,其平方长度等于 SSE 值。
- 可以通过将 (X) 分解为沿 (1) 的分量和与 (1) 正交的分量,得到正交基 (1) 和 (\tilde{X} = X - \mu_X \cdot 1),进而得到预测向量 (\hat{Y} = \text{proj}
1(Y) \cdot 1 + \text{proj}
{\tilde{X}}(Y) \cdot \tilde{X})。
2.2 多元回归
当有多个预测属性 (X_1, X_2, \cdots, X_d) 和一个响应属性 (Y) 时,为多元回归。预测响应值为 (\hat{y} i = b + w_1x {i1} + w_2x_{i2} + \cdots + w_dx_{id} = b + w^T x_i),其中 (w = (w_1, w_2, \cdots, w_d)^T) 是权重向量。
为了方便处理,引入一个值始终为 1 的新“常量”属性 (X_0),将输入点 (x_i) 映射到增强点 (\tilde{x}_i),权重向量 (w) 映射到增强权重向量 (\tilde{w}),则预测响应值可写为 (\hat{y}_i = \tilde{w}^T \tilde{x}_i)。所有 (n) 个方程可以紧凑地写为一个矩阵方程 (\hat{Y} = \tilde{D} \tilde{w}),其中 (\tilde{D}) 是增强数据矩阵。
多元回归任务可表述为找到由权重向量 (\tilde{w}) 定义的最佳拟合超平面,以最小化残差平方和:
[SSE = |Y - \hat{Y}|^2 = Y^T Y - 2 \tilde{w}^T (\tilde{D}^T Y) + \tilde{w}^T (\tilde{D}^T \tilde{D}) \tilde{w}]
通过对 (SSE) 关于 (\tilde{w}) 求偏导数并令其为 0,得到最优权重向量 (\tilde{w} = (\tilde{D}^T \tilde{D})^{-1} \tilde{D}^T Y)。
例如,在鸢尾花数据集的萼片长度((X_1))、花瓣长度((X_2))对花瓣宽度((Y))的多元回归中,计算得到 (\tilde{w} = (-0.014, -0.082, 0.45)^T),拟合模型为 (\hat{Y} = -0.014 - 0.082 \cdot X_1 + 0.45 \cdot X_2),SSE 值为 6.18。
多元回归的几何解释如下:
- 预测向量 (\hat{Y}) 必须位于增强数据矩阵 (\tilde{D}) 的列空间中,为了最小化预测误差,(\hat{Y}) 是 (Y) 在该子空间上的正交投影,残差误差向量 (\epsilon = Y - \hat{Y}) 与该子空间正交,这意味着它与每个属性向量 (X_i) 正交。
- 可以通过 Gram - Schmidt 正交化方法构造正交基 (U_0, U_1, \cdots, U_d),得到 QR 分解 (\tilde{D} = QR),其中 (Q) 是列正交的矩阵,(R) 是上三角矩阵。预测响应向量可以表示为 (Y) 沿每个新基向量的投影之和 (\hat{Y} = \text{proj}
{U_0}(Y) \cdot U_0 + \text{proj}
{U_1}(Y) \cdot U_1 + \cdots + \text{proj}
{U_d}(Y) \cdot U_d)。
- 偏置项 (b) 可以通过将预测属性中心化得到,(b = \mu_Y - \sum
{i=1}^{d} w_i \cdot \mu_{X_i})。
多元回归算法的伪代码如下:
MULTIPLE-REGRESSION (D,Y):
1. ˜D ← [1; D] // 增强数据,添加 X0 = 1
2. {Q,R} ← QR-factorization(˜D) // Q = (U0 U1 ··· Ud)
3. Γ−1 ← diag(1/‖U0‖2, 1/‖U1‖2, ···, 1/‖Ud‖2) // 新基向量平方范数的倒数
4. Rw ← Γ−1QTY // 通过回代求解 w
5. ³Y ← QΓ−1QTY
除了 QR 分解方法,还可以使用随机梯度下降算法来解决多元回归问题。随机梯度下降算法的伪代码如下:
MULTIPLE REGRESSION: SGD (D,Y,η,ǫ):
1. ˜D ← (1 D) // 增强数据
2. t ← 0 // 迭代计数器
3. ˜w t ← random vector in Rd+1 // 初始权重向量
4. repeat
5. foreach k = 1,2,···,n (in random order) do
6. ∇˜w(˜xk) ← −(yk − ˜xTk ˜w t) · ˜xk // 计算在 ˜xk 处的梯度
7. ˜w t+1 ← ˜w t − η · ∇˜w(˜xk) // 更新 ˜w 的估计值
8. t ← t + 1
9. until ‖w t − w t−1‖ ≤ ǫ
3. 岭回归
在实际应用中,数据往往存在噪声和不确定性,为了使模型更稳健,可以使用正则化方法。岭回归通过对权重向量的平方范数添加惩罚项来约束解向量 (\tilde{w}),即最小化目标函数:
[J(\tilde{w}) = |Y - \tilde{D} \tilde{w}|^2 + \alpha \cdot |\tilde{w}|^2]
其中,(\alpha \geq 0) 是正则化常数,控制着最小化权重向量平方范数和平方误差之间的权衡。对 (J(\tilde{w})) 关于 (\tilde{w}) 求偏导数并令其为 0,得到最优解 (\tilde{w} = (\tilde{D}^T \tilde{D} + \alpha \cdot I)^{-1} \tilde{D}^T Y)。
例如,在鸢尾花数据集的花瓣长度((X))和花瓣宽度((Y))的岭回归中,不同正则化常数 (\alpha) 下的结果如下表所示:
| (\alpha) | 回归直线 | (|\tilde{w}|^2) | SSE |
| ---- | ---- | ---- | ---- |
| 0 | (\hat{Y} = -0.367 + 0.416 \cdot X) | 0.308 | 6.34 |
| 10 | (\hat{Y} = -0.244 + 0.388 \cdot X) | 0.210 | 6.75 |
| 100 | (\hat{Y} = -0.021 + 0.328 \cdot X) | 0.108 | 9.97 |
可以看到,随着 (\alpha) 的增加,权重向量的平方范数减小,但模型的拟合度下降,SSE 值增加。
在 L2 正则化回归中,通常不希望对偏置项 (w_0) 进行惩罚。可以通过对响应向量和未增强的数据矩阵进行中心化来排除 (w_0),得到新的正则化目标函数 (J(w) = |Y - Dw|^2 + \alpha \cdot |w|^2)。
岭回归的随机梯度下降算法的伪代码如下:
RIDGE REGRESSION: SGD (D,Y,η,ǫ):
1. ˜D ← (1 D) // 增强数据
2. t ← 0 // 迭代计数器
3. ˜w t ← random vector in Rd+1 // 初始权重向量
4. repeat
5. foreach k = 1,2,···,n (in random order) do
6. ∇˜w(˜xk) ← −(yk − ˜xTk ˜w t) · ˜xk + α/n · ˜w // 计算在 ˜xk 处的梯度
7. ˜w t+1 ← ˜w t − η · ∇˜w(˜xk) // 更新 ˜w 的估计值
8. t ← t + 1
9. until ‖w t − w t−1‖ ≤ ǫ
4. 核回归
为了将线性回归推广到非线性情况,可以采用核技巧。设 (\phi) 是从输入空间到特征空间的映射,将输入点 (x_i) 映射到特征空间中的点 (\phi(x_i))。为了避免显式处理偏置项,将 1 作为 (\phi(x_i)) 的第一个元素,得到增强变换点 (\tilde{\phi}(x_i)^T = [1; \phi(x_i)^T])。
增强核函数在特征空间中定义为 (\tilde{K}(x_i, x_j) = \tilde{\phi}(x_i)^T \tilde{\phi}(x_j) = 1 + \phi(x_i)^T \phi(x_j) = 1 + K(x_i, x_j)),其中 (K(x_i, x_j)) 是标准的未增强核函数。
正则化回归的目标是在特征空间中最小化目标函数 (J(\tilde{w}) = |Y - \tilde{D}_{\phi} \tilde{w}|^2 + \alpha \cdot |\tilde{w}|^2)。通过求解该目标函数,得到最优解 (c = (\tilde{K} + \alpha \cdot I)^{-1} Y),其中 (\tilde{K}) 是增强核矩阵,预测响应向量为 (\hat{Y} = \tilde{K} (\tilde{K} + \alpha \cdot I)^{-1} Y)。
核回归算法的伪代码如下:
KERNEL-REGRESSION (D,Y,K,α):
1. K ← [K(xi,xj)]i,j=1,...,n // 标准核矩阵
2. ˜K ← K + 1 // 增强核矩阵
3. c ← (˜K + α · I)−1Y // 计算混合系数
4. ³Y ← ˜Kc
TESTING (z,D,K,c):
5. ˜Kz ← [1 + K(z,xi)]∀xi∈D
6. ˆy ← cT ˜Kz
例如,在非线性鸢尾花数据集上,使用线性核和非齐次二次核进行核回归,结果表明二次核的拟合效果更好,SSE 误差更小。
5. L1 回归(Lasso)
Lasso 是一种正则化方法,旨在使回归权重稀疏化。它使用 L1 范数进行正则化,目标函数为 (J(w) = \frac{1}{2} |Y - Dw|^2 + \alpha \cdot |w| 1),其中 (|w|_1 = \sum {i=1}^{d} |w_i|)。
由于 L1 惩罚项在 (w_i = 0) 处不可微,需要使用次梯度的概念来求解。
5.1 次梯度和次微分
对于绝对值函数 (f(w) = |w|),其导数在 (w > 0) 时为 1,在 (w < 0) 时为 -1,在 (w = 0) 处不存在。次梯度是指任何通过 (w = 0) 且位于 (f(w)) 图像下方或与之相切的直线的斜率。绝对值函数的次微分定义为:
[\partial |w| = \begin{cases}
1, & \text{if } w > 0 \
-1, & \text{if } w < 0 \
[-1, 1], & \text{if } w = 0
\end{cases}]
5.2 二元 L1 回归
对于二元 L1 回归,回归模型为 (\hat{y}
i = w \cdot x_i),目标函数为 (J(w) = \frac{1}{2} \sum
{i=1}^{n} (y_i - w \cdot x_i)^2 + \alpha \cdot |w|)。通过计算次微分并令其为 0,得到三个情况:
- 当 (w > 0) 且 (\partial |w| = 1) 时,(w = \eta \cdot X^T Y - \eta \cdot \alpha),其中 (\eta = 1 / |X|^2)。
- 当 (w < 0) 且 (\partial |w| = -1) 时,(w = \eta \cdot X^T Y + \eta \cdot \alpha)。
- 当 (w = 0) 且 (\partial |w| \in [-1, 1]) 时,(w \in [\eta \cdot X^T Y - \eta \cdot \alpha, \eta \cdot X^T Y + \eta \cdot \alpha])。
可以将这三个情况紧凑地表示为 (w = S_{\eta \cdot \alpha}(\eta \cdot X^T Y)),其中 (S_{\tau}(z) = \text{sign}(z) \cdot \max{0, (|z| - \tau)}) 是软阈值函数。
5.3 多元 L1 回归
对于多元 L1 回归,通过循环坐标下降法对每个 (w_k) 进行优化。更新公式为 (w_{t+1}^k = S_{\eta \cdot \alpha}(w_t^k + \eta \cdot X_k^T (Y - Dw_t)))。
L1 回归算法的伪代码如下:
L1-REGRESSION (D,Y,α,η,ǫ):
1. µ ← mean(D) // 计算均值
2. D ← D - 1 · µT // 数据中心化
3. Y ← Y - µY · 1 // 响应中心化
4. t ← 0 // 迭代计数器
5. w t ← random vector in Rd // 初始权重向量
6. repeat
7. foreach k = 1,2,···,d do
8. ∇(wt k) ← -XT k (Y - Dw t) // 计算在 wk 处的梯度
9. wt+1 k ← wt k - η · ∇(wt k) // 更新 wk 的估计值
10. wt+1 k ← Sη·α(wt+1 k) // 应用软阈值函数
11. t ← t + 1
12. until ‖w t - w t-1‖ ≤ ǫ
13. b ← µY - (w t)Tµ // 计算偏置项
在鸢尾花数据集的 L1 回归中,不同 (\alpha) 值下的结果显示,Lasso 可以使一些回归系数变为 0,起到自动特征选择的作用。例如,当 (\alpha = 5) 时,(X_1) 和 (X_2) 的系数为 0,而在 L2 回归中,相应系数不为 0 但较小。
6. 回归分析方法对比
为了更清晰地了解各种回归分析方法的特点,我们对线性回归、岭回归、核回归和 L1 回归(Lasso)进行对比,如下表所示:
| 回归方法 | 适用场景 | 优点 | 缺点 | 正则化方式 |
|---|---|---|---|---|
| 线性回归 | 数据呈现线性关系 | 计算简单,可解释性强 | 对噪声敏感,可能过拟合 | 无 |
| 岭回归 | 数据存在噪声和共线性 | 提高模型的稳定性,避免过拟合 | 不能使系数为 0,无法进行特征选择 | L2 正则化 |
| 核回归 | 数据呈现非线性关系 | 可以处理非线性问题 | 计算复杂度高,需要选择合适的核函数 | L2 正则化 |
| L1 回归(Lasso) | 需要进行特征选择的场景 | 可以使部分系数为 0,实现自动特征选择 | 求解相对复杂,需要使用次梯度方法 | L1 正则化 |
从这个表格中,我们可以根据具体的数据特点和问题需求来选择合适的回归分析方法。例如,如果数据呈现明显的线性关系且对可解释性要求较高,那么线性回归是一个不错的选择;如果数据存在噪声和共线性,岭回归可以提高模型的稳定性;对于非线性数据,核回归能够提供更好的拟合效果;而当需要进行特征选择时,Lasso 则更为合适。
7. 回归分析的应用流程
下面我们通过一个 mermaid 流程图来展示回归分析的一般应用流程:
graph LR
A[数据收集] --> B[数据预处理]
B --> C[选择回归方法]
C --> D[模型训练]
D --> E[模型评估]
E --> F{评估结果是否满意}
F -- 是 --> G[模型应用]
F -- 否 --> C
具体步骤如下:
1.
数据收集
:收集与问题相关的自变量和因变量数据。
2.
数据预处理
:对数据进行清洗、缺失值处理、异常值处理、特征缩放等操作,以提高数据质量。
3.
选择回归方法
:根据数据的特点和问题的需求,选择合适的回归分析方法,如线性回归、岭回归、核回归或 L1 回归(Lasso)。
4.
模型训练
:使用训练数据集对选择的回归模型进行训练,估计模型的参数。
5.
模型评估
:使用评估指标(如 SSE、MSE、RMSE 等)对训练好的模型进行评估,判断模型的性能。
6.
评估结果是否满意
:根据评估结果判断模型是否满足需求。如果满意,则可以将模型应用到实际问题中;如果不满意,则需要重新选择回归方法或调整模型参数,再次进行训练和评估。
7.
模型应用
:将训练好的模型应用到新的数据上,进行预测和分析。
8. 回归分析的注意事项
在进行回归分析时,还需要注意以下几点:
1.
数据质量
:数据的质量直接影响模型的性能。在收集数据时,要确保数据的准确性和完整性;在预处理阶段,要对数据进行合理的清洗和处理,避免噪声和异常值对模型的影响。
2.
特征选择
:选择合适的自变量对于回归分析至关重要。过多的自变量可能导致过拟合,而过少的自变量可能导致欠拟合。可以使用特征选择方法(如 Lasso)来筛选出对因变量有重要影响的自变量。
3.
正则化参数选择
:在使用正则化方法(如岭回归和 Lasso)时,需要选择合适的正则化参数 (\alpha)。可以通过交叉验证等方法来确定最优的 (\alpha) 值。
4.
模型评估
:选择合适的评估指标来评估模型的性能。不同的评估指标可能会给出不同的评估结果,需要根据具体问题选择合适的指标。例如,SSE 可以衡量模型的拟合程度,而 MSE 和 RMSE 则可以考虑预测误差的大小。
5.
非线性问题
:如果数据呈现非线性关系,线性回归可能无法提供良好的拟合效果。此时,可以考虑使用核回归或其他非线性回归方法。
9. 总结
回归分析是一种强大的统计方法,用于预测实值因变量。本文介绍了线性回归、岭回归、核回归和 L1 回归(Lasso)等多种回归分析方法,包括它们的原理、算法和应用场景。通过对这些方法的学习,我们可以根据具体的数据特点和问题需求选择合适的回归方法,以提高模型的预测性能。
同时,我们还介绍了回归分析的应用流程和注意事项,强调了数据质量、特征选择、正则化参数选择、模型评估和处理非线性问题的重要性。在实际应用中,我们需要综合考虑这些因素,以确保回归分析的有效性和可靠性。
希望本文能够帮助你更好地理解回归分析,并在实际问题中应用这些方法。通过不断的实践和学习,你可以进一步掌握回归分析的技巧,解决更加复杂的问题。
超级会员免费看
3794

被折叠的 条评论
为什么被折叠?



