我使用了“class_weight”方法来平衡我的多类分类问题,使用逻辑回归、随机森林和 XGBoost 分类器。在这三种方法中,逻辑回归对少数类的表现明显高于其他两种模型。有人可以解释一下为什么 LR 在这种情况下会击败基于决策树的分类器吗?谢谢你。
哪个分类器在使用“class_weight”时表现更好?
数据挖掘
随机森林
逻辑回归
阶级失衡
2021-10-08 03:17:40
2个回答
非常好的问题!我认为简单的答案是:不。根据我的经验,这通常取决于数据。即使是不同的提升方法/工具也会有不同的表现。它通常取决于尝试和错误。
可以产生影响的是使用 L1/L2 正则化,因为它可以缩小对做出良好预测“无用”的特征。
我想不出一个理论上的原因。我很好奇是否有人提出了更多基于理论的答案!
似乎我为这种行为找到了一些合理的理由!
LogisticRegression 方法中的 Class_weight 应用于 sample_weight,它用于一些内部函数,如 >_logistic_loss_and_grad、_logistic_loss 等:
#Logistic loss is the negative of the log of the logistic function..
out = -np.sum(sample_weight * log_logistic(yz)) + .5 * alpha * np.dot(w, w)
NOTE: ---> ^^^^^^^^^^^^^
同样,在 RandomForest 和 XGBoosting 等基于决策树的方法中,class_weigh 应用于giniorentropy函数,这会影响nominator和denominator --> 对纯度函数的影响较小!
其它你可能感兴趣的问题