通过对RMSE进行优化并在RMSE上测量性能,我运行了lighgbm回归模型:
model = LGBMRegressor(objective="regression", n_estimators=500, n_jobs=8)
model.fit(X_train, y_train, eval_metric="rmse", eval_set=[(X_train, y_train), (X_test, y_test)], early_stopping_rounds=20)在500次迭代中,模型不断改进。以下是我在MAE上的表演:
列车上的MAE : 1.080571 MAE进行测试: 1.258383
但是我真正感兴趣的指标是MAE,所以我决定直接优化它(并选择它作为评估指标):
model = LGBMRegressor(objective="regression_l1", n_estimators=500, n_jobs=8)
model.fit(X_train, y_train, eval_metric="mae", eval_set=[(X_train, y_train), (X_test, y_test)], early_stopping_rounds=20)在火车和测试中,MAE的性能都会下降:
列车上的MAE : 1.277689 MAE进行测试: 1.285950
当我看模型的日志,它似乎被困在一个局部的最小值,并且在大约100棵树之后没有改善.你认为这个问题与MAE的不可微性有关吗?
以下是学习曲线:
优化RMSE时的MAE演化

优化MAE时的MAE演化

发布于 2021-12-04 11:04:01
我猜想这是由于这两种度量方法之间的差异:相对于MAE,RMSE更重视较大的误差,因为平方。因此,在RMSE上优化的模型有很强的动机,当它们远离真实值时,即使这些情况并不频繁,也会纠正它的预测。相比之下,在MAE上优化的模型倾向于为尽可能多的实例获得正确的预测。
因此,我的假设是,在RMSE上优化的模型首先试图解决较大的误差,从而找到更好的参数,而在MAE上优化的模型最终在不牺牲许多小误差的情况下,无法在少数大误差的情况下得到改进。通过观察这两个模型预测不同的实例以及预测的程度,应该可以进行检查。
我还会注意到,MAE优化的模型并不像RMSE模型那么适合。因此,我不确定RMSE模型通常比MAE模型要好得多,因为测试集上的性能差异并不大。
https://datascience.stackexchange.com/questions/104743
复制相似问题