SMOTE - 多类

时间:2017-03-09 08:29:33

标签: r

我正在应用SMOTE(DMwR包),因为我有一个类不平衡问题。但是,我有三个班级成绩,而不是两个。

该函数正确地对少数类进行过采样,但我没有遵循多数/中产阶级的行为(即,所有类别都包含不同的样本大小)。

让我们说:

library(DMwR)

set.seed(1234)

train = data.frame(group=as.factor(rep(c(1,2,3),c(35,110,220))),
            score=rnorm(365,100))

train_resample <- SMOTE(group ~ ., train, perc.over = 400, perc.under=200)

table(train_resample$group)

#  1   2   3 
# 175  104 176

少数民族有意义,35 +(35 * 4)= 175.此外,剩下的样本是清楚的,140 * 200/100 = 280.但是,我不确定这个样本如何分布在其余的类上。它保留了样本大小顺序,但可能是随机的。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您可以尝试UBL软件包中的SmoteClassif()函数。该函数允许您指定要对每个类进行欠采样或过采样的百分比。