工具文策略大本营:自由,平等,友爱。R语言数据处理

【R>>DMwR】SMOTE处理样本数据不平衡

2021-07-21  本文已影响0人  高大石头

DMwR包是"Data Mining with R"首字母的缩写,今天来学习下包中SMTOE功能。

知识点

在实际科研过程中往往会存在某类样本远多于或远少于其他类样本,从而导致一些机器学习模型的失效。目前解决这类问题的常见方法有两类,上采样(过采样)和下采样(负采样)。

例子

rm(list = ls())
library(DMwR)
data("iris")
data <- iris[,c(1,2,5)]
data$Species <- factor(ifelse(data$Species=="setosa","rare","common"))
table(data$Species)
# common   rare 
 #  100     50 

common:rare=2:1,然后可以用DMwR::SMTOE进行不平衡处理。
来看下SMOTE的参数:

SMOTE(form, data, perc.over = 200, k = 5, perc.under = 200, learner = NULL, ...)
newData <- SMOTE(Species~.,data,perc.over = 600,perc.under = 100)
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")
table(newData$Species)
# common   rare 
#   300    350 

相关文献

PMID: 33553172

参考链接:

上一篇下一篇

猜你喜欢

热点阅读