Я продолжаю получать эту ошибку, и я не могу понять, почему.e1071 SVM: Ошибка при попытке предсказать
Ошибка в scale.default (NewData [, объект $ масштабируется, падение = FALSE], центр = объект $ x.scale $ "масштабируется: центр",: длина 'центра' должно равняться числу столбцы «х»
Я использую ирис по умолчанию набор данных о, а вот это все мой код. это попытка реализации мультикласс SVM с использованием парного метода.
# pass in the dataframe & the number of classes
multiclass.svm <- function(data) {
class.vec = data[,length(data)]
levels = levels(class.vec)
pair1 <- data[which(class.vec == levels[1]),]
pair1 <- droplevels(pair1)
pair2 <- data[which(class.vec == levels[length(levels)]),]
pair2 <- droplevels(pair2)
pairs = list(rbind(pair1, pair2))
# print(pairs)
for(i in 2:length(levels)){
L1 <- data[which(class.vec == levels[i-1]),]
L1 <- droplevels(L1)
L2 <- data[which(class.vec == levels[i]),]
L2 <- droplevels(L2)
pair <- list(rbind(L1, L2))
pairs <- c(pairs, pair)
}
# now we construct our (n choose 2) binary models
models = list()
for(pair in pairs){
classifier = pair[,length(pair)]
p.svm = svm(formula=classifier~., data=pair)
models = c(models, list(p.svm))
}
for(model in models){
test = iris[1,]
print(predict(model, test))
}
return(models)
}
Тестирование/использование:
> h = multiclass.svm(iris)
Show Traceback
Rerun with Debug
Error in scale.default(newdata[, object$scaled, drop = FALSE], center = object$x.scale$"scaled:center", :
length of 'center' must equal the number of columns of 'x'
>
Любая помощь будет очень оценена ... Я нашел несколько других вопросов по этой теме безрезультатно. Спасибо.
Отъезд [это] (http://stackoverflow.com/questions/22149280/support-vector-machine-works-on-training-set-but-not-on-test-set-in-r-using -e10), это может дать некоторое представление. – steveb