2017-12-31 51 views
0

Ich versuche einen SVM-Klassifikator zu trainieren, um eine Vorhersage zu treffen. Wenn ich versuche, das trainierte Modell zu verwenden, erhalte ich diesen Fehler: Testdaten stimmen nicht mit dem Modell überein. Ich bin nicht der Grund dafür. Dies ist mein CodeSVM-Fehler Testdaten stimmen nicht mit dem Modell überein?

# to prepare the training and testing data 
dat = data.frame(x = rbind(tmp1, tmp2), y = as.factor(c(rep(1, 300), rep(-1, 300)))) 
set.seed(1) 
train_ind = sample(seq_len(nrow(dat)), size = 500) 
train = dat[train_ind, ] 
test = dat[-train_ind, ] 

# training and prediction 
library('e1071') 
svmfit = svm(y ~ ., data = train, kernel ='linear', cost = 10, scale = FALSE) 
ypred = predict(svmfit, test) 
table(predict=ypred, truth = test$y) 

Antwort

0

Der Grund für diesen Fehler ist, dass ich die IDs der Beobachtungen in der Trainings- und Testdaten enthalten, die den SVM-Klassifikator verwechselt hat. Die IDs der Beobachtungen sind in der ersten Spalte. Als ich die erste Spalte aus dem Training und dem Test entfernte, funktionierte es.

Verwandte Themen