我有一个分类问题,训练集中大约有 1000 个正样本和 10000 个负样本。所以这个数据集是相当不平衡的。普通随机森林只是试图将所有测试样本标记为多数类。
这里给出了一些关于子采样和加权随机森林的好答案:用高度偏差的数据集训练 Tree Ensemble 的意义是什么?
除了RF,还有哪些分类方法可以最好地处理这个问题?
我有一个分类问题,训练集中大约有 1000 个正样本和 10000 个负样本。所以这个数据集是相当不平衡的。普通随机森林只是试图将所有测试样本标记为多数类。
这里给出了一些关于子采样和加权随机森林的好答案:用高度偏差的数据集训练 Tree Ensemble 的意义是什么?
除了RF,还有哪些分类方法可以最好地处理这个问题?
在这种情况下,对多数类进行欠采样通常是要走的路。
如果您认为正类的实例太少,则可以执行过采样,例如,从大小为 n 的数据集中采样 5n 个带有替换的实例。
注意事项:
梯度提升在这里也是一个不错的选择。例如,您可以在 sci-kit learn 中使用梯度提升分类器。梯度提升是一种通过基于错误分类示例构建连续训练集来处理类不平衡的原则方法。
除了此处发布的答案之外,如果与负面示例相比,正面示例的数量太少,那么它接近于一个异常检测问题,其中正面示例是异常。
您有一系列检测异常的方法,从使用多元高斯分布对所有点进行建模,然后选择距离均值 2 或 3 个标准差的点。
另一个值得深思的地方——我见过很多人用更多的例子随机抽取负面例子,这样两个类的数量相同。这完全取决于手头的问题,我们是否希望它们保持平衡。