我在绘制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