Optuna调参XGBClassifier出现评估指标变更警告 需设置MSE为指定指标
问题解决方法
该警告是XGBoost 1.3版本后的默认参数变更提示,原因是你没有显式指定模型内部训练用的评估指标,和你用sklearn交叉验证指定的neg_mean_squared_error打分逻辑无关,仅需显式指定eval_metric参数即可消除警告,同时适配你用MSE作为评估指标的需求。
修改方案
以下两种方案任选其一即可:
- 方案1:初始化模型时直接指定参数(最简便,全局生效)
修改基线代码中的模型初始化行,新增eval_metric='mse'参数:
# 原代码 # model = XGBClassifier(random_state = 69) # 修改后 model = XGBClassifier(random_state = 69, eval_metric='mse')
- 方案2:在Optuna调参的参数字典中加入该参数
在objective函数内的params字典中新增对应键值对:
params = {'max_depth' : max_depth, 'n_estimators' : n_estimators, 'sub_sample' : sub_sample, 'learning_rate' : learning_rate, # 新增以下行 'eval_metric': 'mse'}
效果说明
修改完成后重新运行代码,警告会完全消失,你最终用mean_squared_error计算的测试集MSE结果不受任何影响,完全符合需求。
内容的提问来源于stack exchange,提问作者spectre
相关产品推荐
相关产品推荐

