支持向量机预测错误
Error in svm predict
我训练了一个支持向量机模型。我想测试它,但我在 predict() 函数中遇到错误。为了简单起见,我在这里以非随机 70/30 拆分的方式拆分了测试和训练数据。
library(e1071)
train <- mydata[1:9731, ]
test <- mydata[(9731+1):13901, ]
mysvm <- svm(formula = outcome ~ BW + GA, data = train, type = "C-classification", kernel = "linear", gamma = 1, cost = 2)
predict(mysvm, newdata=test)
来自 predict() 的错误信息是:
Error in names(ret2) <- rowns :
'names' attribute [4170] must be the same length as the vector [4106]
数据的头部看起来像...
> head(mydata)
BW outcome GA
1 2.00 Survived 34
2 2.81 Survived 41
3 1.85 Survived 35
4 2.23 Survived 32
5 1.21 Survived 34
6 2.91 Survived 37
This user 有相同的错误信息。问题是 s/he 没有使用数据帧。这不是我的问题。
> class(test)
[1] "data.frame"
> class(train)
[1] "data.frame"
我不确定为什么会出现此错误或它意味着什么。 traceback() 和 debug(predict) 也没有帮助。
您没有提供数据,很难提供解决方案。但是,我猜你的测试数据中有 64 行 GA
或 BW
的 NA
值。如果您删除带有任何 NA 的行,我认为您的预测将 运行:
predict(mysvm, newdata = test[!rowSums(is.na(test)), ])
这当然意味着您不会得到这些行的任何预测。你如何处理这取决于你(例如,你可以估算缺失值或任何适合你的特定用例的值)。
我使用:
model <- svm(y = labels, x = data, ...)
pred <- predict(model, data)
一切都很好。
我训练了一个支持向量机模型。我想测试它,但我在 predict() 函数中遇到错误。为了简单起见,我在这里以非随机 70/30 拆分的方式拆分了测试和训练数据。
library(e1071)
train <- mydata[1:9731, ]
test <- mydata[(9731+1):13901, ]
mysvm <- svm(formula = outcome ~ BW + GA, data = train, type = "C-classification", kernel = "linear", gamma = 1, cost = 2)
predict(mysvm, newdata=test)
来自 predict() 的错误信息是:
Error in names(ret2) <- rowns :
'names' attribute [4170] must be the same length as the vector [4106]
数据的头部看起来像...
> head(mydata)
BW outcome GA
1 2.00 Survived 34
2 2.81 Survived 41
3 1.85 Survived 35
4 2.23 Survived 32
5 1.21 Survived 34
6 2.91 Survived 37
This user 有相同的错误信息。问题是 s/he 没有使用数据帧。这不是我的问题。
> class(test)
[1] "data.frame"
> class(train)
[1] "data.frame"
我不确定为什么会出现此错误或它意味着什么。 traceback() 和 debug(predict) 也没有帮助。
您没有提供数据,很难提供解决方案。但是,我猜你的测试数据中有 64 行 GA
或 BW
的 NA
值。如果您删除带有任何 NA 的行,我认为您的预测将 运行:
predict(mysvm, newdata = test[!rowSums(is.na(test)), ])
这当然意味着您不会得到这些行的任何预测。你如何处理这取决于你(例如,你可以估算缺失值或任何适合你的特定用例的值)。
我使用:
model <- svm(y = labels, x = data, ...)
pred <- predict(model, data)
一切都很好。