我有一个包含大约 3000 个正例和 3000 个负例的训练集。但是我的测试数据集非常不平衡。正集只有 50 个实例,负集有 1500 个实例。这导致精度非常低。有什么方法可以解决这个问题吗?我使用 SVM 来构建分类器。
分类中高度不平衡的测试数据集和平衡的训练数据
机器算法验证
机器学习
分类
数据挖掘
支持向量机
2022-03-02 02:11:54
2个回答
这称为数据集移位设置。此 pdf [1] 应该可以帮助您了解所涉及的几个基本问题。
然而,目前,您可以使用最小二乘重要性拟合来使用您的测试集获得训练数据的重要性估计(您不需要测试集标签,只需要特征向量)[2]。一旦获得重要性估计,就可以将它们用作 libSVM [3] 中的实例权重。
这应该使您能够获得更好的分类器。
[1] http://www.acad.bg/ebook/ml/The.MIT.Press.Dataset.Shift.in.Machine.Learning.Feb.2009.eBook-DDU.pdf
[2] http://www .ms.ku-tokyo.ac.jp/software.html#uLSIF
[3] http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/#weights_for_data_instances
你认为“真实世界”看起来更像训练集还是测试集?如果它看起来更像训练集,您可以从负测试集中随机抽取 50 个实例,以获得更无偏的精度估计。但我同意 Peter Flom 的观点:总的来说,你的测试集和训练集看起来应该相似。
其它你可能感兴趣的问题