【发布时间】:2021-02-25 20:04:55
【问题描述】:
我正在尝试对多类 knn 模型和数据集进行一些 ROC 分析
到目前为止,我有这个 kNN 模型的代码。它运作良好。X_train_new 是一个包含 131 个数值变量(列)和 7210 个观察值的数据集。Y_train 是我作为因素的结果变量。它是一个只有 1 列(活动)和 7210 个观察值(有 6 个可能因素)的数据集
ctrl <- trainControl(method = "cv",
number = 10)
model2 <- train(X_train_new,
Y_train$activity,
method = "knn",
tuneGrid = expand.grid(k = 5),
trControl = ctrl,
metric = "Accuracy"
)
X_test_new 是一个包含 131 个数值变量(列)和 3089 个观察值的数据集。Y_test 是我作为因子的结果变量。它是一个只有 1 列和 3089 个观测值的数据集(有 6 个可能的因素)
我运行预测函数
knnPredict_test <- predict(model2 , newdata = X_test_new )
我想对每个班级与所有班级进行一些 ROC 分析。我正在尝试
a = multiclass.roc ( Y_test$activity, knnPredict_test )
knnPredict_test 是一个带有预测类的向量:
knnPredict_test <- predict(model2 ,newdata = X_test_new )
> length(knnPredict_test)
[1] 3089
> glimpse(knnPredict_test)
Factor w/ 6 levels "laying","sitting",..: 2 1 5 1 3 2 4 5 3 2 ...
这是我遇到的错误
Error in roc.default(response, predictor, levels = X, percent = percent, :
Predictor must be numeric or ordered.
【问题讨论】:
-
错误消息似乎相当强调和信息丰富。在我看来,这似乎也完全可以理解。如果您不这么认为,那么请比您迄今为止尝试的更详细地描述如何使用无序预测器构建 ROC 曲线?