Min*_*Lim 4 python classification boosting lightgbm imbalanced-data
True然后,我在训练 LightGBM 模型时使用“is_unbalance”参数,将其设置为。下图显示了我如何使用此参数。
我的问题是:
is_unbalance正确吗?scale_pos_weight代替is_unbalance?谢谢!
小智 10
这个答案可能对您有关 is_unbalance 的问题有好处: Use of 'is_unbalance' parameter in Lightgbm
您不一定错误地使用了 is_unbalance,但 sample_pos_weight 将为您提供对少数类和多数类的权重的更好控制。
在此链接中,有一个关于scale_pos_weight使用的很好的解释: https://stats.stackexchange.com/questions/243207/what-is-the-proper-usage-of-scale-pos-weight-in-xgboost-for -不平衡数据集
基本上,scale_pos_weight 允许为少数类设置可配置的权重,作为目标变量。关于这个主题的一个很好的讨论在这里 https://discuss.xgboost.ai/t/how-does-scale-pos-weight-affect-probabilities/1790/4。
关于 SMOTE,我无法为您提供理论证明,但考虑到我的经验,每次我尝试使用它来使用 SMOTE 来提高任何模型性能时,都会失败。
更好的方法可能是仔细决定必须优化哪些指标。不平衡问题的更好衡量标准是 f1 分数和召回率。一般来说,AUC 和 Accuracy 将是一个糟糕的选择。此外,-micro 和加权指标都是搜索超参数时用作目标的良好指标)
Machine Learning Mastery 提供了关于微观、宏观和加权指标的很好的解释和实现代码: https://machinelearningmastery.com/ precision-recall-and-f-measure-for-imbalanced-classification/