图像分层抽样

Stratified sampling on images

我有一个数据科学问题,其中大约 7 万张图像已经标记为 20 个不同的类别。一些类别有很多图像,而另一些类别有较少的图像。这反过来会导致数据集不平衡和结果不佳(目前准确率为 68%)。经过一些研究,我发现我需要对图像进行采样(图像挖掘?)而不是 selecting 所有图像。一种这样的方法可以是分层抽样。问题是我如何 select 图像来优化模型的训练?我可以在 70k 图像上使用任何命令行工具或开源代码吗?

你有不平衡的数据,所以要处理这个问题,你可以简单地使用一个名为 Imbalanced learn 的库 该库最初专注于实现 SMOTE,但后来也实现了欠采样和过采样技术。 它还与 scikit-learn 兼容。

使用这种方法,将导致每个 class 具有几乎相等实例的数据重采样。

第二个选项: 您可以简单地为每个 class 选择相同数量的图像并形成训练数据。由于缺乏适当的测试数据,这可能不会提高您的准确性,但您的模型肯定会变得更加稳健和通用。