我正在使用 XGBoost 进行二元分类任务——尝试根据比赛的得分和剩余时间来预测 A 队是否会击败 B 队。我知道对于某些得分时间组合,成功的概率(A 队获胜)基本上是 0 或 1(例如,在还剩 1 分钟时上升 20 分,应该是 ~0.999)。这在经验上是正确的(在以前的比赛中),无论其他特征(团队质量、比赛节奏等)如何
问题:当我查看给定这些得分时间组合的拟合值时,输出往往在 0.03 或 0.97 左右,而不是 0.0001 或 0.9999。我尝试了很多不同的参数组合,但无法让模型输出接近 0 或 1 的值。
更多细节:
- 我有大约 630k 的观察结果,其中大约 55% 是成功的。我也至少有数万个我认为概率应该> .99 或< .01。
- 我弄乱的参数+我尝试过的范围:(
max_depth从4到12),n_estimators(最多几百个),eta(.001到.3),min_child_weight(最多几百个),reg_lambda(1-5) ,gamma(0-5),colsample_byX(0.7-1), 和subsample(0.7-1) - 我没有搞砸,
scale_pos_weight因为我的理解是这个参数适用于不平衡的数据集。我的数据集总体上不平衡,只是在特征空间的某些地方不平衡 - 损失函数是
binary:logistic
有什么想法吗?万分感谢!

