r语言 - 对垃圾邮件数据集绘制SVM分类结果的错误



我在绘制kernlab包的垃圾邮件数据集的SVM分类结果时遇到了问题。

:

require(kernlab)
data(spam)
index <- sample(1:dim(spam)[1])
spamtrain <- spam[index[1:floor(dim(spam)[1]/2)], ]
spamtest <- spam[index[((ceiling(dim(spam)[1]/2)) + 1):dim(spam)[1]], ]
filter <- ksvm(type~.,data=spamtrain,kernel="rbfdot",kpar=list(sigma=0.05),C=5,cross=3)
plot(filter, data=spamtrain)

错误:

Error in `[.data.frame`(expand.grid(lis), , labels(terms(x))) : 
  undefined columns selected

据我所知,plot.ksvm(当您在ksvm对象上使用plot时调用)只能绘制具有两个特征的对象,即数据矩阵只能有两列。不幸的是,文档中没有提到这一点,我只是花了几个小时试图理解出了什么问题。

您应该从kernlab包中使用plot,以便它支持ksvm对象的格式。kernlab::plot(object, data=NULL, grid = 50, slice = list())

有关kernab plot的更多信息请参阅此处:http://cran.r-project.org/web/packages/kernlab/kernlab.pdf

最新更新