21、回归分析:从线性到深度学习的全面解析

回归分析:从线性到深度学习的全面解析

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)等多种回归分析方法,包括它们的原理、算法和应用场景。通过对这些方法的学习,我们可以根据具体的数据特点和问题需求选择合适的回归方法,以提高模型的预测性能。

同时,我们还介绍了回归分析的应用流程和注意事项,强调了数据质量、特征选择、正则化参数选择、模型评估和处理非线性问题的重要性。在实际应用中,我们需要综合考虑这些因素,以确保回归分析的有效性和可靠性。

希望本文能够帮助你更好地理解回归分析,并在实际问题中应用这些方法。通过不断的实践和学习,你可以进一步掌握回归分析的技巧,解决更加复杂的问题。

根据原作 https://pan.quark.cn/s/459657bcfd45 的源码改编 Classic-ML-Methods-Algo 引言 建立这个项目,是为了梳理和总结传统机器学习(Machine Learning)方法(methods)或者算法(algo),和各位同仁相互学习交流. 现在的深度学习本质上来自于传统的神经网络模型,很大程度上是传统机器学习的延续,同时也在不少时候需要结合传统方法来实现. 任何机器学习方法基本的流程结构都是通用的;使用的评价方法也基本通用;使用的一些数学知识也是通用的. 本文在梳理传统机器学习方法算法的同时也会顺便补充这些流程,数学上的知识以供参考. 机器学习 机器学习是人工智能(Artificial Intelligence)的一个分支,也是实现人工智能最重要的手段.区别于传统的基于规则(rule-based)的算法,机器学习可以从数据中获取知识,从而实现规定的任务[Ian Goodfellow and Yoshua Bengio and Aaron Courville的Deep Learning].这些知识可以分为四种: 总结(summarization) 预测(prediction) 估计(estimation) 假想验证(hypothesis testing) 机器学习主要关心的是预测[Varian在Big Data : New Tricks for Econometrics],预测的可以是连续性的输出变量,分类,聚类或者物品之间的有趣关联. 机器学习分类 根据数据配置(setting,是否有标签,可以是连续的也可以是离散的)和任务目标,我们可以将机器学习方法分为四种: 无监督(unsupervised) 训练数据没有给定...
本系统采用微信小程序作为前端交互界面,结合Spring Boot与Vue.js框架实现后端服务及管理后台的构建,形成一套完整的电子商务解决方案。该系统架构支持单一商户独立运营,亦兼容多商户入驻的平台模式,具备高度的灵活性与扩展性。 在技术实现上,后端以Java语言为核心,依托Spring Boot框架提供稳定的业务逻辑处理与数据接口服务;管理后台采用Vue.js进行开发,实现了直观高效的操作界面;前端微信小程序则为用户提供了便捷的移动端购物体验。整套系统各模块间紧密协作,功能链路完整闭环,已通过严格测试与优化,符合商业应用的标准要求。 系统设计注重业务场景的全面覆盖,不仅包含商品展示、交易流程、订单处理等核心电商功能,还集成了会员管理、营销工具、数据统计等辅助模块,能够满足不同规模商户的日常运营需求。其多店铺支持机制允许平台方对入驻商户进行统一管理,同时保障各店铺在品牌展示、商品销售及客户服务方面的独立运作空间。 该解决方案强调代码结构的规范性与可维护性,遵循企业级开发标准,确保了系统的长期稳定运行与后续功能迭代的可行性。整体而言,这是一套技术选型成熟、架构清晰、功能完备且可直接投入商用的电商平台系统。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值