r语言 - "Error in xy.coords(x, y, xlabel, ylabel, log) : x' and 'y' lengths differ" for SVM



收到以下错误:

Error in xy.coords(x, y, xlabel, ylabel, log) : x' and 'y' lengths differ

当我尝试运行以下代码时。我知道这与我的x和y的长度有关:

install.packages("e1071")
library("e1071")
mydata <- read.table("http://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv", sep=";", header=TRUE);
#Go on split the data into a training and test set.
index <- 1:nrow(mydata)
testindex <- sample(index, trunc(length(index)/3))
testset( <-mydata[testindex,]
trainset <- mydata[-testindex,]
svm.model <- svm(formula = as.factor(quality) ~ residual.sugar, data = trainset, kernel = linear, method = "class")
svm.pred <- predict(svm.model, trainset, type = "class")
table(pred = svm.pred, true = trainset[,10)
plot(svm.pred, testset)

我检查了长度,我不明白为什么我的测试集会得出 12。

谢谢

svm.pred 是关于在训练集上做出的预测的变量:

svm.pred <- predict(svm.model, trainset, type = "class")

然后,您想绘制实际值与预测值,但错误地获取了测试集的实际值和训练集的预测值(svm.pred):

plot(svm.pred, testset)

这就是 x,y 长度不同的原因。

如果要在测试集上进行

验证,则应在测试集上进行预测,因此svm.pred应为:

svm.pred <- predict(svm.model, testset, type = "class")

最新更新