只需按照一个机器学习教程(https://machinelearningmastery.com/machine-learning-in-r-step-by-step/)操作即可。我正在尝试在一个向量上预测单个输出。
我使用的是IRIS数据集,并试图用LDA算法进行预测。我试图使用我的nval向量(c(4.3,3.1,1.5,0.1))来预测一个单一的结果,它属于哪个物种?
fit.lda <- train(Species~., data=dataset, method="lda", metric=metric, trControl=control)predictions <- predict(fit.lda, validation)
这给出了一个常规的输出,正如预期的那样。
predict(fit.lda, nval)
这给我的结果是:
警告信息:’newdata’有4行,但找到的变量有120行
求助 🙂
回答:
library(caret)control <- trainControl(method="cv", number=10)metric <- "Accuracy"validation_index <- createDataPartition(iris$Species, p=0.80, list=FALSE)validation <- iris[-validation_index,]dataset <- iris[validation_index,] fit.lda <- train(Species~., data=dataset, method="lda", metric=metric, trControl=control)
你需要将nval
定义为一个数据框,其列名与iris
中的列名相同
nval <- data.frame(4.3, 3.1, 1.5, 0.1)names(nval) <- names(iris)[1:4]predict(fit.lda, nval)# [1] setosa