我已经使用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
作为指标)调整此代码?
答案 0 :(得分:2)
对于回归问题,我们通常不使用损失本身来评估模型性能来定义单独的指标(越低越好);因此,假设您使用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']
添加了一个编译参数,但这是不必要的。