r - 用 mlr3 处理类不平衡
问题描述
最近有人建议我将机器学习框架更改为 mlr3。但我发现过渡比我一开始想的要困难一些。在我目前的项目中,我正在处理高度不平衡的数据,我想在训练我的模型之前对其进行平衡。我发现本教程解释了如何通过管道和图形学习器处理不平衡:
https://mlr3gallery.mlr-org.com/posts/2020-03-30-imbalanced-data/
恐怕这种方法也会通过新数据预测来执行类平衡。为什么我要这样做并减少我的测试样本?
所以出现了两个问题:
- 我是否正确不在测试数据中平衡类?
- 如果是这样,有没有办法在 mlr3 中做到这一点?
当然,我可以手动对训练数据进行子集化并自己处理不平衡,但这不再有趣了!:)
无论如何,感谢您的任何回答,
干杯!
解决方案
回答您的问题:
恐怕这种方法也会通过新数据预测来执行类平衡。
这不正确,你从哪里得到这个?
我是否正确不在测试数据中平衡类?
类平衡通常通过添加或删除行(或调整权重)来实现。在预测步骤期间不应应用所有这些步骤,因为我们希望数据中的每一行都有一个预测值。另一方面,权重通常在预测阶段没有影响。你的假设是正确的。
如果是这样,有没有办法在 mlr3 中做到这一点?
只需PipeOp
按照博客文章中的说明使用。在训练期间,它将执行指定的过采样或欠采样,而在预测期间不执行任何操作。
干杯,
推荐阅读
- c# - 函数,删除所有代码注释
- reactjs - 与 express 后端反应
- node.js - 绕过服务器端 GET 请求的护照身份验证
- stm32f4discovery - 学习 Stm32f407 定时器基础知识。如何使用定时器计数寄存器来设置 LED?
- generics - 在 Kotlin 中的 when 子句中组合多个 is
- c++ - Eigen3:如何在性能关键操作中访问矩阵系数?
- ansible - Ansible:如何以没有外壳的用户身份运行命令
- ios - 即使在 contentoffset(0,0) 之后,iOS tableView 也会向上滚动
- python-3.x - pypy3 导入 psycopg2 错误(未定义符号:PyCoder_Encoder)
- javascript - 使用 JavaScript 自动计费