如何使用 R 中经过训练的分类器预测新数据集?
How to predict new data set using trained classifier in R?
我想使用经过训练的分类器来预测变量(鸢尾花物种)在 R 中如何实现?为简单起见,我生成了一个不包含 Species 变量的人工 iris_unknown 集。我希望分类器预测 iris_unknown.
中的 Species 变量
library(caret)
trainIndex <- caret::createDataPartition(iris$Species, p = 0.5, list = FALSE)
irisTrain <- iris[ trainIndex,]
iris_unknown <- iris[-trainIndex,][,-5] #delete last column species to make unknown variable
model_nnet <- train(irisTrain, irisTrain$Species, method = 'nnet', importance = TRUE)
pred_annFit <- predict(model_nnet, newdata = iris_unknown)
我收到错误:
Error: 'eval(predvars, data, env)': object 'Species' not found
您在训练模型时提供了 Species 列,您不应该这样做,因为它将被使用。如果您在测试 data.frame 中包含标签并不重要,因为如果您的模型经过训练,它将不会使用该列。所以像这样:
iris_unknown <- iris[-trainIndex,-5]
model_nnet <- train(irisTrain[,-5], irisTrain$Species, method = 'nnet', importance = TRUE)
pred_annFit <- predict(model_nnet, newdata = iris_unknown)
这是一个令人难以置信的向量,您可以将其放入您的数据框中:
str(pred_annFit)
Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
让我们将向量预测放回:
iris_unknown$prediction = pred_annFit
我想使用经过训练的分类器来预测变量(鸢尾花物种)在 R 中如何实现?为简单起见,我生成了一个不包含 Species 变量的人工 iris_unknown 集。我希望分类器预测 iris_unknown.
中的 Species 变量library(caret)
trainIndex <- caret::createDataPartition(iris$Species, p = 0.5, list = FALSE)
irisTrain <- iris[ trainIndex,]
iris_unknown <- iris[-trainIndex,][,-5] #delete last column species to make unknown variable
model_nnet <- train(irisTrain, irisTrain$Species, method = 'nnet', importance = TRUE)
pred_annFit <- predict(model_nnet, newdata = iris_unknown)
我收到错误:
Error: 'eval(predvars, data, env)': object 'Species' not found
您在训练模型时提供了 Species 列,您不应该这样做,因为它将被使用。如果您在测试 data.frame 中包含标签并不重要,因为如果您的模型经过训练,它将不会使用该列。所以像这样:
iris_unknown <- iris[-trainIndex,-5]
model_nnet <- train(irisTrain[,-5], irisTrain$Species, method = 'nnet', importance = TRUE)
pred_annFit <- predict(model_nnet, newdata = iris_unknown)
这是一个令人难以置信的向量,您可以将其放入您的数据框中:
str(pred_annFit)
Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
让我们将向量预测放回:
iris_unknown$prediction = pred_annFit