python - 回归问题的 Hyperas 损失函数

标签 python machine-learning keras regression hyperas

我使用 Keras 构建了一个模型来解决回归问题。我想对此模型执行超参数优化。我使用 val_mean_absolute_error 作为指标。示例中仅涉及分类问题(可在 https://github.com/maxpumperla/hyperas 上找到)

validation_acc = np.amax(result.history['val_acc']) 
print('Best validation acc of epoch:', validation_acc)
return {'loss': -validation_acc, 'status': STATUS_OK, 'model': model}

如何调整此代码以解决回归问题(使用 val_mean_absolute_error 作为指标)?

最佳答案

对于回归问题,我们通常不会定义单独的指标,而是使用损失本身来评估模型性能(越低越好);因此,假设您使用 mae 作为损失,并且您已将模型编译为

model.compile(loss='mae', optimizer={{choice(['rmsprop', 'adam', 'sgd'])}})

这是您应该如何修改链接示例中的代码:

#get the lowest validation loss of the training epochs
validation_loss = np.amin(result.history['val_loss']) 
print('Best validation loss of epoch:', validation_loss)
return {'loss': validation_loss, 'status': STATUS_OK, 'model': model}

确实,有些人在类似情况下为 metrics=['mae'] 添加了编译参数,但这是不必要的。

关于python - 回归问题的 Hyperas 损失函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54957904/

相关文章:

python - 自动完成功能不适用于 Haystack 和 Elasticsearch

python - 第一行的选定列

python - Python 中给定 r、theta 和 z 值的极坐标直方图

pandas - 将几列转换为 epoch pandas

python-3.x - Keras:如何使用训练有素的网络进行快速预测?

python - 如何迭代 Django 模型字段,并根据条件添加值

python - Tensorflow:LSTM 和 GradientDescentOptimizer 的梯度为零

python - 一维数据中的阈值

python - Beta 变分自动编码器

python - 如何将列表列表转换为 NumPy 数组并获取完整大小?