微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何提高深度学习回归模型的预测能力

如何解决如何提高深度学习回归模型的预测能力

我有 50 000 行的数据集,范围从 35-50 列,基于它,我需要为每行预测 3 个值。

例如43208.7032; (37 个递增值); 48743.4976 -> 3.7707; 372.9719; 1.158718

到目前为止,我得到的最好结果是平均绝对误差接近 0.05,而我需要它接近 0.001-0.0005。

我用零填充了缺失的数据,并使用 keras.layers.experimental.preprocessing.normalization 对 X 进行了标准化,创建了回调:

callbackPlateau = ReduceLROnPlateau(
    monitor='val_loss',factor=0.8,patience=5,verbose=1,mode='min',min_lr=0.0000001
)

并创建了模型,该模型给出的结果接近 0.05 mean_absolute_error:

model = Sequential()
model.add(Dense(60,input_dim=amount_of_columns,activation=LeakyReLU(alpha=0.6)))
model.add(Dense(90,activation=LeakyReLU(alpha=0.4)))
model.add(Dense(270,activation=LeakyReLU(alpha=0.4)))
model.add(Dense(90,activation=LeakyReLU(alpha=0.4)))
model.add(Dense(45,activation=LeakyReLU(alpha=0.4)))
model.add(Dense(15,activation=LeakyReLU(alpha=0.4)))
model.add(Dense(3,activation=LeakyReLU(alpha=0.4)))
opt = Adam(learning_rate=0.01)
model.compile(loss='mean_absolute_error',optimizer=opt)

我训练它:

history = model.fit(
    training_x,training_y,epochs=550,batch_size=128,callbacks=[callbackPlateau,callbackEarly],validation_data=(validation_x,validation_y))

在最后一个时期给出:

Epoch 343/550
274/274 [==============================] - 2s 6ms/step - loss: 0.0409 - val_loss: 0.0507

Epoch 00343: ReduceLROnPlateau reducing learning rate to 6.805647899454925e-07.
Epoch 00343: early stopping

并计算为:

79/79 [==============================] - 0s 2ms/step - loss: 0.0476

这是我的损失图: Image of plot loss+val_loss/epoch

这里是示例结果:

 Example predictions:
3.6658335; 374.98608; 1.2702768 (expected 3.6646; 374.9678; 1.271311),abs_err: 0.0025;
3.742614; 373.0805; 1.1156969 (expected 3.7444; 373.0549; 1.116855),abs_err: 0.0032;
3.6771998; 369.40353; 1.2375629 (expected 3.6812; 369.4603; 1.231281),abs_err: 0.0108;


 Worst:
3.5641375; 362.88254; 1.1704892 (expected 3.6136; 376.969; 1.137181),abs_err: 0.2236;

我尝试了各种数量的节点和层,并尝试使用线性和 relu 激活。

有什么我可以做得更好或额外使模型给出更好的最终结果的吗? 这是我的第一个深度学习项目。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。