用mlr3处理阶级不平衡
最近有人建议我将机器学习框架改为mlr3。但我发现转变比我一开始想象的要困难一些。在我当前的项目中,我正在处理高度不平衡的数据,我希望在训练我的模型之前平衡这些数据。我已经了解了本教程,它解释了如何通过管道和图形处理不平衡: 我担心这种方法也会使用新的数据进行类平衡。为什么我要这样做并减少我的测试样本 因此,有两个问题正在上升:用mlr3处理阶级不平衡,r,pipeline,imbalanced-data,mlr3,R,Pipeline,Imbalanced Data,Mlr3,最近有人建议我将机器学习框架改为mlr3。但我发现转变比我一开始想象的要困难一些。在我当前的项目中,我正在处理高度不平衡的数据,我希望在训练我的模型之前平衡这些数据。我已经了解了本教程,它解释了如何通过管道和图形处理不平衡: 我担心这种方法也会使用新的数据进行类平衡。为什么我要这样做并减少我的测试样本 因此,有两个问题正在上升: 我在测试数据中不平衡类对吗 如果是,在mlr3中是否有这样做的方法 当然,我可以手动将训练数据子集,然后自己处理不平衡问题,但这不再有趣了!:) 不管怎样,谢谢你的回
干杯 要回答您的问题: 我担心这种方法也会使用新的数据进行类平衡 这不对,你从哪里弄来的 我在测试数据中不平衡类对吗 类平衡通常通过添加或删除行(或调整权重)来实现。所有这些步骤都不应该在预测步骤中应用,因为我们希望数据中的每一行正好有一个预测值。另一方面,权重在预测阶段通常没有影响。 你的假设是正确的 如果是,在mlr3中是否有这样做的方法 只需使用博客文章中描述的
PipeOp
。
在训练期间,它将执行指定的过采样或欠采样,而在预测期间它不执行任何操作
干杯,回答您的问题: 我担心这种方法也会使用新的数据进行类平衡 这不对,你从哪里弄来的 我在测试数据中不平衡类对吗 类平衡通常通过添加或删除行(或调整权重)来实现。所有这些步骤都不应该在预测步骤中应用,因为我们希望数据中的每一行正好有一个预测值。另一方面,权重在预测阶段通常没有影响。 你的假设是正确的 如果是,在mlr3中是否有这样做的方法 只需使用博客文章中描述的
PipeOp
。
在训练期间,它将执行指定的过采样或欠采样,而在预测期间它不执行任何操作
干杯,这只是我的假设。如果您查看mlr3 book()中的图表,看起来graph learner的每个部分都是在新数据中处理的。类平衡是一个异常,还是我理解不正确?
PipeOp
s在train
和test
期间以正确的步骤实施。因此,在这种情况下,您的假设是不正确的。请参阅以获取参考。在predict
过程中,PipeOp
只传递它的输入。太棒了,感谢您的详细解释!非常感谢。这只是我的假设。如果您查看mlr3 book()中的图表,看起来graph learner的每个部分都是在新数据中处理的。类平衡是一个异常,还是我理解不正确?PipeOp
s在train
和test
期间以正确的步骤实施。因此,在这种情况下,您的假设是不正确的。请参阅以获取参考。在predict
过程中,PipeOp
只传递它的输入。太棒了,感谢您的详细解释!非常感谢。