我使用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'])}})
您应该这样修改链接示例中的代码:
#获取训练周期中最低的验证损失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']
的编译参数,但这是不必要的。