从高度不平衡的数据集(即,“目标”类比“背景”类少得多的数据集)学习二元分类器最有用的技术是什么?例如,
- 是否应该首先对多数/背景类进行下采样以降低其频率,然后重新调整学习算法报告的概率?应该如何进行重新调整?
- 是否应该对不同的学习算法使用不同的方法,即是否有不同的技术来处理 SVM、随机森林、逻辑回归等中的不平衡?
从高度不平衡的数据集(即,“目标”类比“背景”类少得多的数据集)学习二元分类器最有用的技术是什么?例如,
处理不平衡的一个常见策略是更严厉地惩罚选择频率较高的类的错误分类。
在二元分类问题中,您可以通过除以 1/n 来进行惩罚,其中 n 是相反类别的示例数。
请参阅 Jordi Vitriá 教授的以下内容

这是结构化输出 SVM 的损失函数。
您提到的问题在图像中的对象识别和对象分类中很常见,其中使用的背景图像比包含对象的图像多得多。一个更强大的情况发生在仅使用对象的单个图像的示例 SVM 上。
这个网站已经发布了一些很好的答案:
在 Stats SE 上:
我还建议您尝试使用高斯分布进行“异常检测”的想法。在某些情况下,它的效果非常好——特别是如果你有一个非常倾斜的类(比如,在一百万个例子中,只有 10-20 个是“1”(在课堂上),其余的都是 0)。您可以在 prof 的视频中查找它。安德鲁·吴。
http://www.youtube.com/watch?v=h5iVXB9mczo
或文字: http: //www.holehouse.org/mlclass/15_Anomaly_Detection.html
请注意,这不是分类问题,它没有使用分类算法。
如果数据集高度不平衡,我建议您使用结构 SVM 而不是基本分类模型。
来自论文的第 3.3 节 -使用支持向量机预测结构化对象1 这对学习意味着什么?与其在训练期间优化错误率的某些变体,这是传统 SVM 和几乎所有其他学习算法所做的那样,让学习算法直接优化似乎是一种自然的选择,例如 F 1 -Score (即准确率和召回率的调和平均值)。这是我们的二进制分类任务需要成为结构化输出问题的地方,因为 F 1 -Score(以及许多其他 IR 度量)不是单个示例的函数(如错误率),而是一个函数的一组例子。特别是,我们解决了预测标签数组 y = ( y 1 , ..., yn ), yi Î {−1, +1} 的结构化输出问题,用于特征向量数组 x = (x 1 , ..., xn ), xi Î Â N 。
我建议你阅读整篇论文。对于实现,您可以使用 python pystruct library 2