我通过优化 RMSE 并测量 RMSE 的性能运行了一个 lightgbm 回归模型:
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 的不可微性有关吗?
以下是学习曲线: