步骤用于高度不平衡的分类步骤。我应该对数据进行上采样和下采样,还是对不平衡的类进行上采样

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了步骤用于高度不平衡的分类步骤。我应该对数据进行上采样和下采样,还是对不平衡的类进行上采样相关的知识,希望对你有一定的参考价值。

我有一个高度不平衡的二进制(是/否)分类数据集。该数据集当前具有约0.008%'是'。

我需要使用SMOTE平衡数据集。

我遇到了两种解决不平衡的方法。在变量>>上运行MinMaxScaler之后的以下步骤

from imblearn.pipeline import Pipeline
oversample = SMOTE(sampling_strategy = 0.1, random_state=42)
undersample = RandomUnderSampler(sampling_strategy=0.5, random_state=42)
steps = [('o', oversample), ('u', undersample)]
pipeline = Pipeline(steps=steps)
x_scaled_s, y_s = pipeline.fit_resample(X_scaled, y)

这导致数据集的大小从240万行减少到732000行失衡从0.008%改善为33.33%

虽然采用这种方法

sm = SMOTE(random_state=42)
X_sm , y_sm = sm.fit_sample(X_scaled, y)

这将行数从240万行增加到480万行,不平衡现在为50%。

完成这些步骤后,我需要将数据分割为Train Test数据集...。

这里正确的方法是什么?

选择任何一种方法之前需要考虑哪些因素?

我应该对未采样的数据运行X_test,y_test。这意味着,我将分割数据并仅对火车数据进行上采样/下采样。

谢谢。

JD

我有一个高度不平衡的二进制(是/否)分类数据集。数据集当前具有约0.008%的“是”。我需要使用SMOTE平衡数据集。我遇到了两种方法来处理...

答案

完成这些步骤后,我需要将数据分割为Train Test数据集...。

以上是关于步骤用于高度不平衡的分类步骤。我应该对数据进行上采样和下采样,还是对不平衡的类进行上采样的主要内容,如果未能解决你的问题,请参考以下文章

为不平衡二元分类对数据进行过采样的过程

具有高度不平衡的多标签分类中的损失曲线

使用不平衡数据进行过度训练

在使用 5 折交叉验证时,在高度不平衡的数据中混淆 F1 分数和 AUC 分数

当我有高度不平衡的数据时,我应该平衡测试集吗?

不平衡二元分类问题的最佳阈值