【问题标题】:What could be reasons for high MAE and MSE in Keras?Keras 中 MAE 和 MSE 高的原因可能是什么?
【发布时间】:2020-01-23 11:18:21
【问题描述】:

我的 MAE 和 MSE 相当高。但是训练数据(不包括测试数据 20%)(1030, 23)个实例(在应用 IQR 和 Z-score 之后)。顺便说一句,所有分类列都已完全编码。

Epoch: 1900, loss:50195632.3010,  mae:3622.3535,  mse:50195636.0000,  val_loss:65308249.2427,  val_mae:4636.2290,  val_mse:65308244.0000,  

以下是我对 Keras 的设置。

model = keras.Sequential([
    layers.Dense(64, activation='relu', input_shape=[len(dftrain.keys())]),
    layers.Dense(64, activation='relu'),
    layers.Dense(1)
  ])

  optimizer = tf.keras.optimizers.RMSprop(0.001)

  model.compile(loss='mse',
                optimizer=optimizer,
                metrics=['mae', 'mse'])

EPOCHS = 2000

history = model.fit(
    normed_train_data, 
    train_labels,
    epochs=EPOCHS, 
    validation_split = 0.2, 
    verbose=0,
    callbacks=[tfdocs.modeling.EpochDots()])

你怎么看?

【问题讨论】:

  • High MAE even after 2000 epochs 表示模型太小。尝试增加Dense 层的数量。还要打印并检查输入和输出是否正确传递给模型(可能是normalization 期间的一些错误)。
  • 你的意思是增加每个密集层的数量或添加其他密集层。
  • 这些绝对损失值毫无意义。它与基线相比如何(例如线性回归或天真地预测子样本均值/中位数)?
  • 两者都会有所帮助。你的任务是什么?分类还是回归?什么类型的数据?
  • 哦,对不起,我的错。 MAE 仅适用于回归。

标签: pandas tensorflow keras


【解决方案1】:

“高”MAE 本身是相对的,并根据数据而变化,可能有多种因素促成它。

如果您刚开始,我建议您执行探索性数据 分析(EDA)并提出特征,并为训练准备数据。 验证数据后,尝试调整模型的参数以适合您的用例。 ML 更多的是关于实验而不是编码。

Kaggle 中的此类笔记本将帮助您入门。

  1. Neural Network Model for House Prices
  2. Comprehensive data exploration with Python

【讨论】:

    【解决方案2】:

    实际上可能有很多原因。我的快速猜测将是您的数据集。用于训练的数据。是否符合模型的预期? (形状、格式等)就像在文本分类的情况下,是在输入模型之前编码的文本。 标签是否正确,是否已转换为神经网络预期?

    如果是,其余的将取决于您的网络定义,您是否使用了正确的损失函数、层等?

    为您的问题尝试一个基本模型架构,这个基本架构模型可以从互联网上找到的类似问题的实现中获取。这将为您提供一个很好的起点。

    【讨论】:

      【解决方案3】:

      其他答案已经提到了一些优点,但您可以做的另一件事是标准化您的数据(如果您还没有)。 NNs are highly sensitive to this。您可以在这里尝试的一些方法是Batch NormalizationStandard ScalerMin-Max Scaler

      另外,如果您的模型过度拟合(训练损失减少,但验证损失没有减少),请考虑在您的层之间添加 Dropout 形式的正则化,看看它是否有所改善。

      这些链接可能会有所帮助:

      1. link1
      2. link2

      【讨论】:

        猜你喜欢
        • 2018-08-21
        • 1970-01-01
        • 2013-02-16
        • 2021-09-01
        • 2012-01-01
        • 2020-09-09
        • 2023-03-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多