[英]Feature Engineering on imbalanced data
我正在训练一个关于分类问题的机器学习模型。 我的数据集是10000 个观察值,包含37 个分类类别。 但是数据不平衡,我有一些类有100 个观测值,而其他一些类有3000和4000 个观测值。
在搜索了如何对此类数据进行一些特征工程以提高算法的性能之后。 我找到了2个解决方案:
根据第一个解决方案:我有很多班级有一些观察,所以它需要更多的数据和很长的时间。 所以这对我来说会很困难!
通过应用第二个:我认为所有类都会有一些观察结果,并且数据将非常小,因此算法很难概括。
那么我可以尝试解决这个问题的另一种解决方案吗?
您可以更改损失函数中的权重,以便在优化时较小的类具有更大的重要性。 例如,在 keras 中,您可以使用weighted_cross_entropy_with_logits 。
您可以将两者结合使用。
如果您对所有少数类进行上采样以匹配多数类,那么您似乎担心会得到过大的数据集。 如果是这种情况,您可以将多数类下采样到 25% 或 50%,同时上采样少数类。 上采样的一种替代方法是使用 SMOTE 等算法为少数类合成样本。
如果您正在批量训练神经网络,最好确保训练集被正确打乱,并且您在小批量中拥有偶数/多数样本的均匀分布。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.