假设你正在尝试使用机器学习进行一个分类任务,比如说,查看动物的照片并区分马和斑马。这个任务似乎在现有技术范围内是可行的。
但如果你拿一堆标记好的照片,丢给像神经网络或支持向量机这样的系统,实际情况是,斑马比马稀有得多,系统最终只是学会了说“总是马”,因为这实际上是减少错误的最佳方式。
虽然错误最小化了,但这也不是一个非常有用的结果。推荐的做法是什么,让系统知道“我想要对哪些照片是斑马的最佳猜测,即使这会产生一些误报”?这个问题似乎没有得到很多讨论。
回答:
我通常处理不平衡类别(或倾斜数据集)时采用的方法之一就是简单地生成更多数据。我认为这是最佳方法。你可以到现实世界中收集更多不平衡类别的数据(例如,找到更多的斑马照片)。你也可以通过制作副本或进行变换来生成更多数据(例如,水平翻转)。
你也可以选择一个使用不同评估(性能)指标的分类器,而不是通常使用的准确率。看看精确度/召回率/F1分数。
Andrew Ng的机器学习课程的第6周讨论了这个话题:链接
我还发现了一个处理不平衡类别的不错的网页:链接