-1

我有以下问题,有一个分类问题。在 50,000 行的轨道上,在 Y 60 个标签上。但是数据是不平衡的(在一个类中,35000 个值,在其他 59 个类中,15000 个值,其中大约 30 个值)。如果例如,即 X (column_1, column_2, column_3) 和 Y:

colum_1   colum_2   colum_3   Y
  0.5        1         2      1
  0.5        1.1       2      1
  0.55       0.95      3      1
  0.1        1         2      2
  2          0.9       3      3

并且需要添加“嘈杂”的数据,这样就不会有不平衡,有条件地,所有值都变得相同:

colum_1   colum_2   colum_3   Y
  0.5        1         2      1
  0.5        1.1       2      1
  0.55       0.95      3      1
  0.1        1         2      2
  0.15       0.99      2      2
  0.05       1.01      2      2 
  2          0.9       3      3
  1.95       0.95      3      3
  2.05       0.85      3      3

这只是一个玩具例子,但我有很多含义。

4

1 回答 1

0

尽管问题并不完全清楚,但我认为您正在寻求对少数类进行过采样的帮助。一种常见的方法是SMOTE算法,您可以在imblearn包中找到它。

from imblearn.over_sampling import SMOTE
sm = SMOTE(random_state=42, ratio = 1.0)
X_res, Y_res = sm.fit_sample(X_train, Y_train)

只需确保首先将数据分成训练组和测试组,然后分别对每个组进行过采样,这样您就不会在两个组中都使用相同的数据。这里有更全面的描述。

于 2018-06-11T09:40:45.363 回答