如何降低结构化数据集训练神经网络时的验证集MAE?
问题描述
我拥有一个包含300个特征列与1个目标变量的数据集,特征按X_i_0/X_i_1/X_i_2的规则分组(i取值范围为0到99),数据集结构如下:
| X_0_0 | X_0_1 | X_0_2 | X_1_0 | X_1_1 | X_1_2 | ... | X_99_2 | y |
|---|---|---|---|---|---|---|---|---|
| 3.0 | 48.0 | 1.04 | 3.0 | 78.0 | 1.14 | ... | 0.01 | 19.0 |
| 0.0 | 5.0 | -1.0 | 0.0 | 4.0 | -1.00 | ... | 1.36 | 25.0 |
| 1.0 | 49.0 | 3.0 | 3.0 | 90.0 | 0.61 | ... | 0.99 | 22.0 |
| 0.0 | 3.0 | -1.0 | 3.0 | 28.0 | 2.0 | ... | 2.04 | 22.0 |
| 3.0 | 0.0 | 1.7 | 0.0 | 5.0 | -1.00 | ... | 1.16 | 24.0 |
经统计,所有X_i_0类特征的取值仅为[0,1,2,3]四类,验证代码如下:
sub = train.loc[:,::3] for col in sub: print(sub[col].unique())
输出结果如下,各列唯一值均在[3. 0. 1. 2.]范围内:
[3. 0. 1. 2.] [3. 0. 1. 2.] [1. 0. 2. 3.] [0. 1. 2. 3.] [1. 0. 2. 3.] [0. 1. 3. 2.] [3. 0. 1. 2.] [0. 3. 1. 2.] [2. 1. 0. 3.] [3. 1. 0. 2.] .............
对X_i_1和X_i_2类特征执行相同统计,两类特征的唯一值数量远高于X_i_0。目标变量分布近似正态分布。
尝试使用序列模型训练,试过正则化、dropout、不同深度的神经网络,验证集MAE最低只能降到4.5,使用的基础模型结构如下:
def create_model(factor, rate): # regularization and Dropout model = Sequential([ Dense(32, kernel_regularizer=l2(factor),activation="relu", input_shape=(n_features,)), Dense(16,kernel_regularizer=l2(factor), activation="relu", kernel_initializer='he_normal'), Dense(16, kernel_regularizer=l2(factor), activation="relu", kernel_initializer='he_normal'), Dense(8, activation="relu", kernel_initializer='he_normal'), Dense(1) ]) return model
常规训练误差曲线显示测试集损失高于训练集,存在过拟合迹象。需要优化数据处理流程,进一步降低MAE得分。
优化方案
数据预处理优化
- 离散特征编码:所有
X_i_0为无序4分类特征,直接作为数值输入会引入不存在的顺序权重假设,可选择独热编码(每个特征转换为4维0/1向量)或低维嵌入(每个特征映射为2维连续向量,适用于后续序列模型),消除特征类型错配带来的精度损失。 - 连续特征归一化:对
X_i_1、X_i_2两类连续特征执行标准化(减均值除标准差)或鲁棒缩放,避免不同特征数值范围差异过大导致模型收敛慢、权重分配不合理。 - 保留特征结构:不要将300个特征摊平为一维向量输入,按照特征的分组逻辑调整输入形状为
(100, 3),保留100组特征的序列关系,方便后续模型提取组内、组间的关联信息。 - 噪声特征过滤:通过Pearson相关系数计算单特征与目标变量的相关性,或使用LightGBM/XGBoost输出特征重要性,过滤掉与目标无显著关联的噪声特征,降低过拟合概率。
模型训练优化
- 匹配特征结构的模型选型:替换全连接网络为适配序列输入的模型,可选择1维CNN(提取局部组间关联)、轻量LSTM(提取长序列依赖)或MLP-Mixer,对结构化序列特征的提取效率远高于普通全连接网络。
- 过拟合抑制:在现有正则、dropout基础上增加早停策略(监控验证集MAE,连续N轮不下降则终止训练)、批量归一化层(加在每个激活层前,加快收敛同时降低过拟合),也可对训练集的连续特征添加小幅度高斯噪声做数据增强,提升模型泛化能力。
- 集成学习提升精度:训练多个不同结构的基模型(如序列模型、树回归模型、全连接模型),对输出结果做加权平均或堆叠融合,通常可降低10%~20%的MAE。
内容的提问来源于stack exchange,提问作者Vladislav Panteleev
相关产品推荐
相关产品推荐

