安装包
SMOTE函数自DMwR包更新后,已不在DMwR2包中。
SMOTE函数现在在smotefamily包中。在安装smotefamily包后导入即可使用
install.packages("smotefamily")
library("smotefamily")
用法
而且SMOTE函数的参数也已更新,之前在DMwR中可能是这样
newData<-SMOTE(y~.,data=Data,perc.over=1000,K=5,perc.under=200)
plot(newData[,1:2],main="SMOTE处理后的观测点分布",xlab="x1",ylab="x2",pch=as.integer(as.vector(Data[,3]))+1,cex=0.8)
在新SMOTE函数中
newData<-SMOTE(Data[,-3],Data[3],dup_size =0,K=5)
输出变量直接用Data[,3]单独选出,输入变量则要将数据中的输入变量删除即可,不再需要R公式。保持不变的大概只有K这个用于指定近邻个数的参数。其它变量似乎不设置也不会影响最终结果。
用plot函数画图时改为
plot(newData$data[,1:2],main="SMOTE处理后的观测点分布",xlab="x1",ylab="x2",pch=as.integer(as.vector(Data[,3]))+1,cex=0.8)
具体寻找过程(可忽略)
在安装DMwR包发现该包已经更新为DMwR2包后,安装了DMwR2包发现SMOTE函数不在此包中。于是去下面链接中(R的包列表)使用Ctrl+F搜索SMOTE函数想碰碰运气。
结果恰好发现有一个叫smotefamily的包,于是碰运气下载导入后发现确实可用,但是函数用法又有错误,在help说明中看到了示例,于是对照示例改了自己的代码。

然后画图时出错,报错如下
Error in h(simpleError(msg, call)) :
在为'plot'函数选择方法时评估'x'参数出了错: incorrect number of dimensions
然后查看了newData的内容,发现newData是包括很多东西的,要通过修改一下代码将newData[,1:2]改为读取newData中data的数据:newData$data[,1:2]。(具体可以自己看一下newData)
最终成功运行。
1166

被折叠的 条评论
为什么被折叠?



