machine-learning - 不平衡数据的特征工程
问题描述
我正在针对分类问题训练机器学习模型。我的数据集是10000个观测值,包含37个分类类别。但是数据不平衡,我有一些类有100 个观察值,而其他一些类有3000和4000 个观察值。
在搜索了如何对此类数据进行一些特征工程以提高算法的性能之后。我找到了2个解决方案:
- 上采样意味着获得更多关于少数类的数据
- 下采样,这意味着删除关于多数类的数据
根据第一个解决方案:我有很多类有一些观察,所以它需要更多的数据和很长时间。所以这对我来说很难!
并且通过应用第二个:我认为所有类都会有一些观察结果,并且数据会非常小,因此算法很难概括。
那么我可以尝试解决这个问题的另一种解决方案吗?
解决方案
您可以更改损失函数中的权重,以便在优化时较小的类具有更大的重要性。例如,在 keras 中,您可以使用weighted_cross_entropy_with_logits。
推荐阅读
- r - How to efficiently apply a reduce-able function on each row of a data.table
- c - Scanf 正在向数组寻址错误类型的变量
- javascript - 使用 CDN 时如何调用 react logger 函数
- html - 将一个固定的“箭头”元素居中于另一个固定的“圆形”元素中
- d3.js - 带有可扩展节点的图形,带有 D3
- r - 从 R 中具有 6 个未知数的 6 个非线性方程计算变量
- typescript - 在 Nest.js 中,如何在我的 API 响应中提供与我的 JSON 对象捆绑在一起的静态内容文件
- notepad++ - notepad++ 正则表达式删除标签内部/之间的空白空间并按字母顺序排序
- maven - 未能执行目标 org.scalatest:scalatest-maven-plugin:2.0.0:test (test)
- c++ - 这种右移是如何工作的:stringstream >> unsigned int >> unsigned int?