【问题标题】:How to calculate percent of error in keras如何计算keras中的错误百分比
【发布时间】:2018-04-14 03:01:21
【问题描述】:

我使用 keras 并设置机器学习模型来预测我的数据。

K.clear_session()

model = Sequential()
model.add(Dense(3, input_dim=1, activation='relu'))
model.add(Dense(1))
model.compile(loss='mean_squared_error', optimizer='adam')
model.fit(X_train, y_train, epochs=500,
          batch_size=2, verbose=1,
          )

model.fit 后的输出显示损失,例如 loss: 0.0382。我不知道 loss: 0.0382 是什么意思。训练数据和测试数据之间的误差百分比是多少?如何计算?

【问题讨论】:

  • 您能否详细说明百分比是什么意思?
  • 我的answer here 可能有助于澄清事情;它在不同的上下文中(scikit-learn),但您的问题是非常初级的,独立于任何特定的包和实现

标签: machine-learning tensorflow keras


【解决方案1】:

您使用了mean_squared_error (mse) 损失函数。

MSE 评估估计量(即,将数据样本映射到从中抽样数据的总体参数的数学函数)或预测器(即,将任意输入映射到样本的函数)的质量。一些随机变量的值)。

Formula for MSE

MSE 必须低才能获得好的模型。模型的 MSE 越低越好。

在您的训练中,您损失了0.0382。挺好的。

Keras 中还有另一个名为mean_absolute_percentage_error 的损失函数。如果您想知道模型在训练和测试中的百分比误差,可以使用mean_absolute_percentage_error 作为损失函数来编译模型。

如果你想根据模型的准确度来评估编译和训练后的模型,你可以像这样使用evaluate()函数。

scores = model.evaluate(X_validation, Y_validation, verbose=1)
print("Accuracy: %.2f%%" % (scores[1]*100))

【讨论】:

  • 我使用 model.compile(loss='mean_absolute_percentage_error', optimizer='adam')。为什么输出是 Epoch 200/200 39/39 [===============================] - 0s - loss: 74374.4342 是吗超过 100% ?怎么用?
  • 我已经编辑了答案。我认为找到模型的准确性就是您要寻找的。​​span>
猜你喜欢
  • 2016-06-15
  • 2016-09-04
  • 1970-01-01
  • 1970-01-01
  • 2021-04-12
  • 2017-03-28
  • 2020-10-20
相关资源
最近更新 更多