为了验证自己填补算法的好坏,一般采用完整数据集进行人为缺失,缺失机制为完全随机缺失(Missing Completely At Random, MCAR),我们可以按照不同的比例,设定缺失率为5%,10%,15%,... ,50%等。
R语言中,simFrame包可以直接对数据进行缺失处理。
一个数据集如下所示,为csv文件,这里我在第一行加上了label序号。
对该数据进行不同比例的缺失。
R语言操作如下:
1. 导入simFrame包
> library(simFrame)
当然前一步还是要先下载simFrame包 install.packages("simFrame")
2. 读取你的完整数据集(csv文件)
> data<-read.csv("D://statlog.csv",sep=",")
> dataFrame<-as.data.frame(data)
这里,dataFrame存放的就是你的标准数据集
3. 设置缺失率并将数据集缺失处理。
> nac<-NAControl(NArate=0.1)
> x<-setNA(dataFrame,nac)
我设置的缺失率为10%,可以自己调整。
4. 将有缺失的数据集输出保存为csv文件
> write.table(x,file="D:\\statlog5.csv",sep=",",quote=TRUE)
输出文件中,第一列和第一行是生成的num和label编号,可直接删除。最后结果如下: