返回

r-SMOTE为多数样本生成重复样本

发布时间:2022-07-07 19:51:21 252
# 数据# 软件# 软件

我是R方面的新手,正在使用现有的SMOTE包试用一些示例。所以我试着performanceEstimation包,并遵循他们的SMOTE示例代码。以下代码作为参考:

## A small example with a data set created artificially from the IRIS
## data

data <- iris[, c(1, 2, 5)]
data$Species <- factor(ifelse(data$Species == "setosa","rare","common"))

## checking the class distribution of this artificial data set
table(data$Species)

## now using SMOTE to create a more "balanced problem"
newData <- smote(Species ~ ., data, perc.over = 6,perc.under=1)
table(newData$Species)


## Checking visually the created data
## Not run:
par(mfrow = c(1, 2))
plot(data[, 1], data[, 2], pch = 19 + as.integer(data[, 3]),
main = "Original Data")
plot(newData[, 1], newData[, 2], pch = 19 + as.integer(newData[,3]),
main = "SMOTE'd Data")
## End(Not run)

链接:https://cran.r-project.org/web/packages/performanceEstimation/performanceEstimation.pdf

在新数据的结果中,我注意到大多数样本都是作为重复样本生成的。结果如下:

.. Sepal.lenght Sepal.Width Species
146 6.7 3.0 common
146.1 6.7 3.0 common
106 7.6 3.0 common
60 5.2 2.7 common
107 4.9 2.5 common
107.1 4.9 2.5 common
107.2 4.9 2.5 common

这里的第一列是您在运行“newData”时可以看到的索引,或者在 RStudio 的 Environment 选项卡中单击 newData 变量。请注意,上表只是我从结果中挑选的一些片段。common 是 iris 数据集中的类。

所以这里的问题是,

  • 为什么SMOTE为多数样本(公共类)生成重复样本?
  • 这个重复样本会影响分类模型的准确性吗?

据我所知,SMOTE欠采样多数类和过采样少数类,过采样部分生成合成样本。上表中的最后3行是重复的。

如果运行代码,您将看到以小数为索引的行。我试着四处搜索,但在任何论坛上都找不到类似的问题。另一点是,我尝试了其他软件包,并获得了类似的结果。

提前非常感谢!

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(1)
按点赞数排序
用户头像