ElasticNet-弹性网
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,真实工作表为Parameters、Raw_Preview、Preprocess_Info、Summary、Coefficients、Pred_Train、Pred_Test、Pred_All、Charts_Index。 - 当前实体图并不是不存在,而是位于
charts_20260329_165358/子目录,实际文件为coef_top_20260329_165358.png、pred_vs_true.png、residuals_hist.png、residuals_qq.png、residuals_vs_fitted.png、true_vs_pred_line.png。因此这篇可以支撑回归图集引用,只是图不在结果目录根部。 - 当前输入副本位于
repro_inputs/sample_data.csv,repro_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. 结果解释与论文写作建议
- 参数表:列出 \(\alpha,\ell_1\_r\)、是否含截距、特征工程配置。
- 系数表:给出各特征系数与绝对值排序,强调稀疏性与关键变量。
- 预测结果:训练集/测试集预测与残差表;配合预测-真实图、残差直方图、Q-Q 图。
- 交叉验证(可选):提供 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或脚本同目录快照。 - 后续如需补复现说明,应按实际存在的时间戳目录另写,不要把不同批次的图和脚本并成一次导出。