正在加载中...

展开本页目录
算法教程ElasticNet-弹性网

ElasticNet-弹性网

No.042 · 在线教程

ElasticNet(弹性网)是线性回归的正则化扩展,将 L1(Lasso) 与 L2(Ridge) 正则融合。其优势是:在高维与强相关特征场景下既能实现稀疏选择(L1),又能稳定系数(L2),缓解 Lasso 在强相关特征下不稳定的问题。

ElasticNet-弹性网

1. 方法概述

ElasticNet(弹性网)是线性回归的正则化扩展,将 L1(Lasso)L2(Ridge) 正则融合。其优势是:在高维与强相关特征场景下既能实现稀疏选择(L1),又能稳定系数(L2),缓解 Lasso 在强相关特征下不稳定的问题。

设样本集为 $$ \mathcal{D}=\{(x_i,y_i)\}_{i=1}^{n},\quad x_i\in\mathbb{R}^{d},\ y_i\in\mathbb{R} \tag{1} $$

其中 \(n\) 为样本数,\(d\) 为特征维度。

2. 预处理(可选)

ElasticNet 对特征尺度敏感,建议标准化;类别变量应进行 One-Hot 编码;缺失值需先处理。

2.1 Z-score 标准化

$$ z_{ij}=\frac{x_{ij}-\mu_j}{\sigma_j} \tag{2} $$

2.2 Min-Max 归一化

$$ z_{ij}=\frac{x_{ij}-\min x_j}{\max x_j-\min x_j+\varepsilon} \tag{3} $$

2.3 One-Hot 编码

$$ x^{(k)}_{ij}= \begin{cases} 1,& x_{ij}=\text{cat}_k\\ 0,& \text{otherwise} \end{cases} \tag{4} $$

3. 符号说明与变量解释

3.1 变量解释段落

本文中 \(X\in\mathbb{R}^{n\times d}\) 表示特征矩阵,\(y\in\mathbb{R}^{n}\) 表示真实值向量,\(\hat{y}\) 为模型预测值;\(w\) 为系数向量、\(b\) 为截距。正则化参数 \(\alpha\) 控制惩罚强度,\(\ell_1\_r\) 为 L1 比例,用于平衡 L1 与 L2 正则。交叉验证中使用 K 折平均误差选择 \((\alpha,\ell_1\_r)\) 的最优组合。

3.2 符号说明

符号 含义
\(n\) 样本数量
\(d\) 特征维度
\(X\) 特征矩阵(\(n\times d\))
\(y\) 真实值向量
\(\hat{y}\) 预测值向量
\(w,b\) 系数向量 / 截距
\(\alpha\) 正则化强度
\(\ell_1\_r\) L1 比例(l1_ratio)
\(K\) 交叉验证折数
\(e_i\) 残差
\(\varepsilon\) 防止除零的极小数

3.3 变量—公式对应关系

  • 公式(1):数据集 \(\mathcal{D}\) 与样本 \((x_i,y_i)\)。
  • 公式(2)–(3):标准化/归一化中的 \(x_{ij},\mu_j,\sigma_j,\min x_j,\max x_j,\varepsilon\)。
  • 公式(4):One-Hot 编码后的 \(x^{(k)}_{ij}\)。
  • 公式(5):线性预测 \(\hat{y}_i=w^\top x_i+b\)。
  • 公式(6)–(8):目标函数中的 \(X,y,w,b,\alpha,\ell_1\_r\)。
  • 公式(9):稀疏度中的非零系数个数 \(k\) 与维度 \(d\)。
  • 公式(10)–(12):交叉验证中的 \(\text{MSE}_t,\overline{\text{MSE}},K\) 及最优参数 \((\alpha^*,\ell_1\_r^*)\)。
  • 公式(13)–(14):预测值 \(\hat{y}_i\) 与残差 \(e_i\)。
  • 公式(15)–(19):评价指标中的 \(y_i,\hat{y}_i,\bar{y},\varepsilon\)。

3.4 公式—输出表格(Excel sheet)映射说明

公式编号 主要内容 Excel Sheet
(1) 样本与数据集定义 Raw_Preview
(2)–(4) 预处理(标准化/归一化/One-Hot) Preprocess_Info
(5) 线性预测模型 Summary
(6)–(8) ElasticNet 目标函数与特例 Parameters / Summary
(9) 稀疏度 Summary / Coefficients
(10)–(12) 交叉验证 MSE 与最优参数 Summary / (CV 结果表如有)
(13)–(14) 预测与残差 Pred_Train / Pred_Test / Pred_All
(15)–(19) 评价指标(MSE/RMSE/MAE/MAPE/R²) Summary
图表路径索引 Charts_Index

4. 线性回归模型

ElasticNet 仍基于线性模型: $$ \hat{y}_i = w^\top x_i + b \tag{5} $$

其中 \(w\in\mathbb{R}^{d}\) 为系数向量,\(b\) 为截距。

5. ElasticNet 目标函数

5.1 基本形式

$$ \min_{w,b}\ \frac{1}{2n}\|y-Xw-b\mathbf{1}\|_2^2 \;+\;\alpha\Big(\ell_1\_r\|w\|_1+\frac{1-\ell_1\_r}{2}\|w\|_2^2\Big) \tag{6} $$

其中:

  • \(\alpha>0\) 为正则强度;
  • \(\ell_1\_r\in[0,1]\) 为 L1 比例(l1_ratio);
  • \(\|w\|_1=\sum_{j=1}^{d}|w_j|\),\(\|w\|_2^2=\sum_{j=1}^{d}w_j^2\)。

5.2 Lasso / Ridge 特例

当 \(\ell_1\_r=1\) 时退化为 Lasso: $$ \min_{w,b}\ \frac{1}{2n}\|y-Xw-b\mathbf{1}\|_2^2+\alpha\|w\|_1 \tag{7} $$

当 \(\ell_1\_r=0\) 时退化为 Ridge: $$ \min_{w,b}\ \frac{1}{2n}\|y-Xw-b\mathbf{1}\|_2^2+\frac{\alpha}{2}\|w\|_2^2 \tag{8} $$

5.3 稀疏度(可用于解释)

设非零系数个数为 \(k\),则稀疏度可定义为 $$ \text{Sparsity}=1-\frac{k}{d} \tag{9} $$

6. 交叉验证选择 \(\alpha\) 与 \(\ell_1\_r\)

系统支持 ElasticNetCV,通过 K 折交叉验证选最优超参数。

6.1 K 折 MSE

对第 \(t\) 折验证集 \(\mathcal{V}_t\): $$ \text{MSE}_t(\alpha,\ell_1\_r)=\frac{1}{|\mathcal{V}_t|}\sum_{i\in\mathcal{V}_t}(y_i-\hat{y}_i)^2 \tag{10} $$

6.2 平均 MSE

$$ \overline{\text{MSE}}(\alpha,\ell_1\_r)=\frac{1}{K}\sum_{t=1}^{K}\text{MSE}_t(\alpha,\ell_1\_r) \tag{11} $$

6.3 选择准则

$$ (\alpha^*,\ell_1\_r^*)=\arg\min_{\alpha,\ell_1\_r}\ \overline{\text{MSE}}(\alpha,\ell_1\_r) \tag{12} $$

7. 预测与残差

预测值: $$ \hat{y}_i=w^\top x_i+b \tag{13} $$

残差: $$ e_i=y_i-\hat{y}_i \tag{14} $$

8. 回归评价指标

均方误差(MSE) $$ \text{MSE}=\frac{1}{n}\sum_{i=1}^{n}(y_i-\hat{y}_i)^2 \tag{15} $$

均方根误差(RMSE) $$ \text{RMSE}=\sqrt{\text{MSE}} \tag{16} $$

平均绝对误差(MAE) $$ \text{MAE}=\frac{1}{n}\sum_{i=1}^{n}|y_i-\hat{y}_i| \tag{17} $$

平均绝对百分比误差(MAPE) $$ \text{MAPE}=\frac{1}{n}\sum_{i=1}^{n}\left|\frac{y_i-\hat{y}_i}{y_i+\varepsilon}\right| \tag{18} $$

决定系数 \(R^2\) $$ R^2=1-\frac{\sum_{i=1}^{n}(y_i-\hat{y}_i)^2}{\sum_{i=1}^{n}(y_i-\bar{y})^2} \tag{19} $$

9. 实验流程图(可选)

图 1 ElasticNet 实验流程图
步骤示例:
数据导入 → 缺失/编码/标准化 → 训练/测试划分 → ElasticNet/ElasticNetCV 训练 → 预测与指标 → 图表与 Excel 输出 → 论文结果整理。

9. 单篇终审补充

9.1 图题与表题对齐建议

  • Parameters 表可写为:表X ElasticNet 参数设置表。
  • Raw_Preview 表可写为:表X ElasticNet 原始数据预览表。
  • Preprocess_Info 表可写为:表X ElasticNet 预处理信息表。
  • Summary 表可写为:表X ElasticNet 结果摘要表。
  • Coefficients 表可写为:表X ElasticNet 系数表。
  • Pred_Train 表可写为:表X ElasticNet 训练集预测结果表。
  • Pred_Test 表可写为:表X ElasticNet 测试集预测结果表。
  • Pred_All 表可写为:表X ElasticNet 全样本预测结果表。
  • Charts_Index 表可写为:表X ElasticNet 图表索引表。

9.2 终审说明

  • 当前最适合作为终审证据的代表性目录可采用 具体的算法2/ElasticNet-弹性网/results/pytest_ui_elasticnet_test_window2_regression_robust9_20260329_165358。该目录同时具备结果簿和 repro 脚本。
  • 真实工作表为 Parameters/Raw_Preview/Preprocess_Info/Summary/Coefficients/Pred_Train/Pred_Test/Pred_All/Charts_Index。与 Bayesian Ridge 相比,这个代表性目录没有额外的 LogML 曲线或预测区间表,终审说明应按真实结果簿来写。
  • 当前代表性目录根部没有额外落地 png 图文件,主要证据集中在结果簿与 repro 脚本。因此这篇的终审重点应放在系数、训练/测试预测结果和预处理链路,而不是强写图表解释。
  • 当前复现脚本为 repro_elasticnet_20260329_165358.py,采用 SRC_FILE = 'repro_inputs/sample_data.csv'。因此 ElasticNet 这篇可以把 repro_inputs/... 作为标准复现输入路径。
  • ElasticNet 这篇在终稿中应明确其工程边界:当前代表性目录更偏“稳健回归结果簿 + 标准 repro”,不是“大量实体图文件导出”的风格。

9.3 全量强化补充

  • 本轮按真实磁盘再次核对,算法目录为 具体的算法2/ElasticNet-弹性网,代表性结果目录为 具体的算法2/ElasticNet-弹性网/results/pytest_ui_elasticnet_test_window2_regression_robust9_20260329_165358
  • 该目录主工作簿为 pytest_ui_elasticnet_test_window2_regression_robust9_20260329_165358.xlsx,真实工作表为 ParametersRaw_PreviewPreprocess_InfoSummaryCoefficientsPred_TrainPred_TestPred_AllCharts_Index
  • 当前实体图并不是不存在,而是位于 charts_20260329_165358/ 子目录,实际文件为 coef_top_20260329_165358.pngpred_vs_true.pngresiduals_hist.pngresiduals_qq.pngresiduals_vs_fitted.pngtrue_vs_pred_line.png。因此这篇可以支撑回归图集引用,只是图不在结果目录根部。
  • 当前输入副本位于 repro_inputs/sample_data.csvrepro_elasticnet_20260329_165358.py 中明确写有 SRC_FILE = 'repro_inputs/sample_data.csv'。这属于标准 repro_inputs/... 结构。
  • 需要区分 Charts_Index 与实体图目录:工作簿中的 Charts_Index 是图路径清单,真正用于论文插图的是 charts_20260329_165358/ 下的 png 文件。
  • 当前代表性目录来自 UI 稳健性测试路径,但结构已经是较完整的“主工作簿 + 图目录 + repro 脚本 + repro_inputs”标准案例,后续可直接作为论文和交付证据引用。

10. 示例参数表模板(可选)

表 1 ElasticNet 参数设置示例
表注:下表为论文写作中的示例格式,数值仅作演示。

参数 符号 示例值 说明
正则强度 \(\alpha\) 1.0 惩罚项强度
L1 比例 \(\ell_1\_r\) 0.5 L1 与 L2 混合比例
是否拟合截距 True 线性回归截距
最大迭代次数 1000 坐标下降迭代上限
收敛阈值 1e-4 迭代收敛容差
特征标准化 standard Z-score 标准化
交叉验证 \(K\) 5 K 折 CV
训练集比例 0.8 训练/测试划分

11. 示例结果表模板(可选)

表 2 ElasticNet 结果汇总示例
表注:示例用于论文呈现格式,实际数值以实验结果为准。

指标 符号 训练集 测试集 说明
均方误差 MSE 0.021 0.028 越小越好
均方根误差 RMSE 0.145 0.167 越小越好
平均绝对误差 MAE 0.110 0.126 越小越好
平均绝对百分比误差 MAPE 3.8% 4.5% 越小越好
决定系数 \(R^2\) 0.92 0.89 越大越好
稀疏度 Sparsity 0.40 非零系数比例
最优 \(\alpha\) \(\alpha^*\) 0.8 CV 选择
最优 \(\ell_1\_r\) \(\ell_1\_r^*\) 0.6 CV 选择

表 3 ElasticNet 系数 Top 示例
表注:展示绝对值最大的特征系数(Top 5)。

特征 系数 \(|系数|\) 方向
x3 0.812 0.812 正向
x1 0.645 0.645 正向
x7 -0.530 0.530 负向
x2 -0.418 0.418 负向
x5 0.301 0.301 正向

12. 结果解释与论文写作建议

  1. 参数表:列出 \(\alpha,\ell_1\_r\)、是否含截距、特征工程配置。
  2. 系数表:给出各特征系数与绝对值排序,强调稀疏性与关键变量。
  3. 预测结果:训练集/测试集预测与残差表;配合预测-真实图、残差直方图、Q-Q 图。
  4. 交叉验证(可选):提供 CV 曲线(MSE vs alpha)与最优参数。

13. 实现说明与注意事项

  • 适用范围:高维线性回归、特征高度相关、需要变量选择与稳定性折中。
  • 重要注意:ElasticNet 强依赖特征尺度,建议标准化;类别特征需 One-Hot。
  • 模型解释:系数为线性影响方向与强度,稀疏系数有助于变量筛选,但不等同因果关系。

14. 软件实现核查补充(2026-07)

  • 当前实现对应回归主线,最新结果目录应写作 具体的算法2/ElasticNet-弹性网/results/ElasticNet分析结果_20260411_214839
  • 图文件集中在 charts_20260411_214839/,不是固定 charts/
  • 正文应围绕 系数指标CV预测残差 来写,不要把其他时间戳目录中的图混进这一版。
  • 若当前目录未见单独 repro 脚本,文中就只写当前批次以结果表和图为主,不要虚构 repro_inputs 或脚本同目录快照。
  • 后续如需补复现说明,应按实际存在的时间戳目录另写,不要把不同批次的图和脚本并成一次导出。