Я пытаюсь сделать прогнозы с использованием обученного SVM из пакета e1071, но мои данные содержат некоторые отсутствующие значения (NA).R SVM return NA для прогнозов с отсутствующими данными
Я бы хотел, чтобы возвращаемые предсказания были NA, когда у этого экземпляра есть какие-либо отсутствующие значения. Я попытался использовать na.action = na.pass, как показано ниже, но он дает мне ошибку «Ошибка в именах (ret2) < - rowns: атрибут« имена »[150] должен быть такой же длины, как и вектор [149]».
Если я использую na.omit, тогда я могу получить предсказания без экземпляров с отсутствующими данными. Как я могу получить прогнозы, включая NA?
library(e1071)
model <- svm(Species ~ ., data = iris)
print(length(predict(model, iris)))
tmp <- iris
tmp[1, "Sepal.Length"] <- NA
print(length(predict(model, tmp, na.action = na.pass)))
Вы можете просто присвоить все действительные случаи назад к переменному прогнозированию в 'tmp' набор -' TMP [complete.cases (tmp), «предсказывать»] <- pred (model, newdata = tmp [complete.cases (tmp),]) 'или эквивалент. – thelatemail
Спасибо, это здорово. Учитывая, что я должен работать с SVM и хочу NA, а не вменение, это путь. – Jake