我有一个不平衡的数据集,没有做任何类平衡,预测率并不比基线好多少。我有两个班级,我无法收集更多数据。
我做了什么:
- 随机欠采样表现不佳,因为它大大减少了数据集。
- 使用 SMOTE 进行过采样的性能略好于基线(大约 60-70%)
- 使用 SMOTE 进行过采样,然后使用 ENN 进行欠采样,可以将某些分类器的准确率提高到 95%(KNN 和高斯过程表现最好)
由于上述原因,我对我的方法持怀疑态度,并且没有引入任何偏见。
我的主要问题如下:
- 我见过人们在拆分训练和测试数据之前进行类平衡。在过采样的情况下,如果您在拆分之前进行过采样,则会增加准确性的偏差,因为您会将数据点与其过采样对应物(人工生成)进行比较。拆分前的过采样会引入偏差吗?
- 单独拆分训练集和测试集后过采样是否更科学正确?
- 我们必须平衡测试集吗?
- ENN 和 SMOTE 是被广泛引用的论文。两者都使用KNN作为过采样和欠采样的主要方法。如果我使用的是 KNN 分类器,我预计会有一些潜在的偏见。我知道他们使用随机化元素并且文献很丰富,但是ENN 和/或 SMOTE 是否会为特定分类器引入偏差?
- 我们如何知道我们的数据集是否不平衡。例如,5% 的类差异可能以不同方式影响 10,000 个数据点,数百个数据点、2 个类和 20 个类。有没有办法定量地确定我们的数据集是不平衡的?