You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用带scale_pos_weight的XGBoost时,sklearn如何计算验证集准确率?

XGBoost + RandomizedSearchCV:验证集准确率计算逻辑

验证集上的准确率是sklearn计算的未加权准确率,和XGBoost的scale_pos_weight参数没有关系,具体逻辑如下:

  • scale_pos_weight是XGBoost训练阶段的专属参数:它仅作用于模型的损失函数,给少数类样本的损失赋予更高权重,引导模型在训练时更关注少数类特征,以此缓解数据不平衡问题,但它不会改变模型预测后指标的计算规则。
  • RandomizedSearchCV中scoring="accuracy"采用sklearn原生的准确率计算逻辑:即(预测正确的样本总数) / (验证集总样本数),完全不涉及样本权重加权——不管训练时有没有设置scale_pos_weight,最终验证指标都严格按照sklearn的评分规则计算。

举个直观例子:假设验证集有90个负样本、10个正样本,模型训练时设置了scale_pos_weight=9,若模型预测对了85个负样本、5个正样本,那么sklearn计算的准确率就是(85+5)/(90+10)=90%,不会给正样本的预测正确数乘以9来加权。

如果需要适配数据不平衡的加权指标,你需要直接指定sklearn的对应评分方式(比如scoring="balanced_accuracy"),或者自定义评分函数,而不是依赖scale_pos_weight改变指标计算。

内容的提问来源于stack exchange,提问作者Eli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 23:15:26