我正在处理 AWS Sagemaker 上的信用欺诈数据集。数据集高度不平衡。其欺诈交易率仅为 0.1732%。我想使用 sagemaker 的 XG-Boost 将给定交易预测为欺诈 (1) 或非欺诈 (0)。当我将超参数中的目标函数设置为“multi:softmax”且类数 = 2 时,它给出了良好的结果,召回率为 85%。当我将目标函数设置为“reg:logistic”时,我的召回率为 0。它只是将每笔交易标记为非欺诈。 2 个类别的 Logistic 和 multi-softmax 不应该给出相同的答案吗?另外,在处理不平衡数据集时是否应该更改任何超参数的默认值? 谢谢
最佳答案
对于不平衡数据集,第一件事是确保少数标签示例的过度代表性。 XGBoost 使用参数 scale_pos_weight
对此进行了规定。
请参阅参数scale_pos_weight
详细信息:
https://xgboost.readthedocs.io/en/latest/parameter.html
关于machine-learning - Sagemaker XG-Boost(目标=reg :logistic) not working on highly imbalanced data set,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58838805/