mllib 如何在内部对不平衡数据集的类进行加权?

Posted

技术标签:

【中文标题】mllib 如何在内部对不平衡数据集的类进行加权?【英文标题】:How does mllib weight the classes internally for unbalanced datasets? 【发布时间】:2019-09-24 01:30:23 【问题描述】:

我有一个包含 1% 正类(1)和 99% 负(0)的数据框,我正在 Pyspark 中使用逻辑回归。我骑here处理不平衡的数据集,解决方案是添加一个weightCol,正如链接中提供的答案中所说,为了告诉模型更多地关注1 , 因为少了。

我试过了,效果很好,但我不知道 mllib 如何在内部平衡数据。有人有线索吗?我不喜欢使用我无法理解的“黑匣子”。

【问题讨论】:

【参考方案1】:

来自Spark documentation 它说

我们实现了两种算法来解决逻辑回归:小批量梯度下降和 L-BFGS。我们建议使用 L-BFGS 而非小批量梯度下降来加快收敛速度​​。

您可以查看LBFGS.scala 以了解优化算法如何在每次迭代后更新权重。

【讨论】:

以上是关于mllib 如何在内部对不平衡数据集的类进行加权?的主要内容,如果未能解决你的问题,请参考以下文章

步骤用于高度不平衡的分类步骤。我应该对数据进行上采样和下采样,还是对不平衡的类进行上采样

在 sklearn 中补充朴素贝叶斯和加权类

如何对不平衡的多类数据集进行欠采样? (Python)

微观VS宏观VS加权F1分数[关闭]

Vowpal Wabbit:不平衡的类

如何使用随机森林对不平衡类进行分类以避免过度拟合