我正在AWS Sagemaker上处理信用欺诈数据集。数据集高度不平衡。它只有0.1732%的欺诈交易。我想使用来自sagemaker的XG-Boost来预测一个给定的交易是欺诈性的(1)还是非欺诈性的(0)。当我将超参数中的目标函数设置为'multi:softmax‘和类别数= 2时,它给出了很好的结果,召回率为85%。当我将目标函数设置为'reg:logistic‘时,我的召回率为0。它只是给每一笔交易贴上非欺诈性的标签。两个类的逻辑和多softmax不应该给出相同的答案吗?另外,在处理不平衡的数据集时,是否有需要更改其默认值的超参数?谢谢
发布于 2019-11-22 11:22:52
对于不平衡的数据集,首先要确保少数标签示例的过度表示。通过使用参数scale_pos_weight,XGBoost提供了此功能。
请参阅https://xgboost.readthedocs.io/en/latest/parameter.html上的argument scale_pos_weight details
https://stackoverflow.com/questions/58838805
复制相似问题