机器学习中回归问题的精确预测

数据挖掘 深度学习 神经网络 回归 随机森林
2022-02-21 22:09:01

我正在处理发货天数交货问题,我想预测发货天数(连续变量目标)

我已经尝试过神经网络和随机森林回归器,如果我考虑 MAE 或 MSE,我的错误率非常低,但是如果我比较实际的船期和预测的船期,我会在大多数值上得到很多差异。我想做的是(actual ship days - predicted ship days)大多数记录应该有5天的差异,但是我在大多数样本中都得到了巨大的差异

  1. 训练样本:110 万条记录
  2. 测试样本:90万条记录

algo1:随机森林回归器(使用默认参数)

algo2:神经网络

loss: 46.2513 - mae: 5.2729 - val_loss: 46.5231 - val_mae: 5.2836

我的代码:

network = models.Sequential()
network.add(layers.Dense(128, activation='relu', input_shape=(23,)))
network.add(layers.Dropout(0.5))
network.add(layers.Dense(64, activation='relu'))
network.add(layers.Dropout(0.5))
network.add(layers.Dense(1,activation='linear'))

network.compile(loss='mean_squared_error', optimizer='adam', metrics=['mae'])

history = network.fit(X_train_scaled, train_ship_days,
                    validation_data=(X_test_scaled, test_ship_days),
                    epochs=50,
                    batch_size=128)

最终目标:实际发货天数和 predict_ship_Days 对于至少 80 % 的记录应该有最小差异

建议我一些我可以实现的算法或技术

1个回答

你为什么把自己限制在 2 个模型上?在 ML 和 DL 中有大量不同的算法。试一试,看看哪个能提供所需的结果。

另外我注意到您没有在模型中进行任何预处理。可能是出于长度目的,您只显示了代码的相关部分。如果是这样,那没关系,但如果不是,那么您可能应该预处理您的数据。对于神经网络,缩放是非常重要的一步。

您还可以尝试对模型进行超参数调整以改善结果。

至于你可以尝试的不同算法,这里是不同类型的分类和回归算法以及不同类型的神经网络的链接。

另一个链接显示如何根据拥有的数据选择应该选择哪种类型的算法。