r-SMOTE为多数样本生成重复样本
发布时间:2022-07-07 19:51:21 261
相关标签: # 数据# 软件# 软件
我是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行是重复的。
如果运行代码,您将看到以小数为索引的行。我试着四处搜索,但在任何论坛上都找不到类似的问题。另一点是,我尝试了其他软件包,并获得了类似的结果。
提前非常感谢!
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报