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