我有一个包含 5 个名义变量和 37 个分类变量的数据集。我想在 R 中执行过采样。但是,使用 SMOTE,我不能这样做。我按照 (Chawla, Bowyer and Hall, 2002) 的建议寻找了 SMOTE-NC,但我找不到任何支持它的软件包。如何解决这个问题呢?谢谢。
问问题
864 次
1 回答
0
SMOTEN 仅针对 Python 开发(截至今天)。它的作用与 SMOTE 不同,SMOTE-NC 可用于包含数字和分类特征的数据集。但是,它并非旨在仅使用分类特征。
在您的 R 案例中,ROSE
并且SMOTE
旨在处理分类变量,因此,除非您的分类变量以二进制格式表示,否则您不必担心它们是分类变量。但是,如果它们不是以二进制格式表示的,则需要将所有这些分类变量转换为二进制格式。这是一个示例,如果您尝试将调用的分类变量转换class
为二进制格式:
df$class <- as.factor(df$class)
levels(df$class) <- c(1,0)
这会将变量转换class
为 0 和 1。对所有分类变量执行此操作后,您应该能够使用SMOTE
函数。
于 2021-07-15T00:27:46.837 回答