【发布时间】:2020-01-03 18:01:15
【问题描述】:
我正在针对分类问题训练机器学习模型。我的数据集是 10000 个具有 37 分类类别的观察值。但是数据是不平衡,我有一些具有 100 观察值的类和一些具有 3000 和 4000 观察值的其他类.
搜索了如何对这类数据做一些特征工程来提高算法的性能。我找到了 2 个解决方案:
- 上采样意味着获取更多关于少数类的数据
- 下采样,这意味着删除关于多数类的数据
根据第一种解决方案:
我有很多课程有一些观察,所以它需要更多的数据和很长时间。所以这对我来说会很困难!
并且通过应用第二个:
我认为所有类都会有一些观察结果,并且数据会非常小,因此算法很难泛化。
那么对于这个问题,我可以尝试另一种解决方案吗?
【问题讨论】:
-
有几种欠采样和过采样技术,您可以在开源 Python pacakge 不平衡学习 (imbalanced-learn.org/stable) 中查看。您还可以实施成本敏感的学习,或平衡装袋或提升。现在所有这些都是改变数据集分布的技术,以便您获得对少数类的更好表示。特征工程技术是指对变量的实际转换。
标签: machine-learning feature-engineering imbalanced-data