目前做smote已经不能用DMwR包了,这个包已经停止更新了,smotefamily包是DMwR包的升级版,今天给大家介绍利用smotefamily包来处理多分类类不平衡数据。
我们所用的数据是下载到本地运行的Cardiotocography Data Set,这个数据集的下载链接如下:https://data.world/uci/cardiotocography
数据集展示
#首先载入数据
setwd("G:/Rcode")
library("readxl")
CTG <- read_excel("CTG.xls", sheet = "Raw Data")
# 进行EDA
head(CTG, 5)
nrow(CTG)
summary(CTG)
str(CTG)
colnames(CTG)
#我们选择性的删除一些变量
CTG.df <- subset(CTG,select =-c(FileName,Date,SegFile,DR,b,e,LBE,A,B,C,D,E,
AD,DE,LD,FS,SUSP,CLASS))
str(CTG.df)
length(CTG.df)
sum(is.na(CTG.df))
CTG.df$NSP <- as.factor(CTG.df$NSP)
str(CTG.df)
nrow(CTG.df)
dim(CTG.df)
# 我们定义N,S,P三类
library(dplyr)
N <- filter(CTG.df, CTG.df$NSP == 1)
S <- filter(CTG.df, CTG.df$NSP == 2)
P <- filter(CTG.df, CTG.df$NSP == 3)