收到以下错误:
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")