使用 mlr3 处理 class 不平衡
Dealing with class imbalance with mlr3
最近有人建议我将机器学习框架更改为 mlr3。但我发现过渡比我开始时想象的要困难一些。在我当前的项目中,我正在处理高度不平衡的数据,我想在训练我的模型之前对其进行平衡。我发现了这个教程,它解释了如何通过管道和图学习器处理不平衡:
https://mlr3gallery.mlr-org.com/posts/2020-03-30-imbalanced-data/
恐怕这种方法也会执行 class 与新数据预测的平衡。我为什么要这样做并减少我的测试样本?
所以上升的两个问题:
- 我在测试数据中不平衡 class 是否正确?
- 如果是这样,在 mlr3 中有没有办法做到这一点?
当然,我可以手动对训练数据进行子集化,然后自己处理不平衡问题,但这不再有趣了! :)
无论如何,感谢您的回答,
干杯!
回答您的问题:
I am afraid that this approach will also perform class balancing with new data predicting.
这不正确,你从哪里得到的?
Am I correct not to balance classes in testing data?
Class 平衡通常通过添加或删除行(或调整权重)来实现。在预测步骤中不应应用所有这些步骤,因为我们希望数据中的每一行都有一个预测值。另一方面,权重通常在预测阶段没有影响。
你的假设是正确的。
If so, is there a way of doing this in mlr3?
只需按照博客 post 中所述使用 PipeOp
。
在训练期间,它会进行指定的过采样或欠采样,而在预测期间它什么也不做。
干杯,
最近有人建议我将机器学习框架更改为 mlr3。但我发现过渡比我开始时想象的要困难一些。在我当前的项目中,我正在处理高度不平衡的数据,我想在训练我的模型之前对其进行平衡。我发现了这个教程,它解释了如何通过管道和图学习器处理不平衡:
https://mlr3gallery.mlr-org.com/posts/2020-03-30-imbalanced-data/
恐怕这种方法也会执行 class 与新数据预测的平衡。我为什么要这样做并减少我的测试样本?
所以上升的两个问题:
- 我在测试数据中不平衡 class 是否正确?
- 如果是这样,在 mlr3 中有没有办法做到这一点?
当然,我可以手动对训练数据进行子集化,然后自己处理不平衡问题,但这不再有趣了! :)
无论如何,感谢您的回答,
干杯!
回答您的问题:
I am afraid that this approach will also perform class balancing with new data predicting.
这不正确,你从哪里得到的?
Am I correct not to balance classes in testing data?
Class 平衡通常通过添加或删除行(或调整权重)来实现。在预测步骤中不应应用所有这些步骤,因为我们希望数据中的每一行都有一个预测值。另一方面,权重通常在预测阶段没有影响。 你的假设是正确的。
If so, is there a way of doing this in mlr3?
只需按照博客 post 中所述使用 PipeOp
。
在训练期间,它会进行指定的过采样或欠采样,而在预测期间它什么也不做。
干杯,