Использование varImp возвращает ошибку: оператор $ недопустим для атомарных векторов - PullRequest
0 голосов
/ 31 августа 2018

Я пытаюсь ранжировать функции по важности, используя функцию varImp из пакета caret. Вот что у меня есть:

ctrl <- trainControl(method = "LGOCV", savePred=T)
mod <- train(Group~., data=metrics, method = "svmLinear", trControl = ctrl)
importance <- varImp(mod, scale=FALSE)

Но функция varImp выдает мне эту ошибку в Traceback:

Error: $ operator is invalid for atomic vectors
5.
FUN(newX[, i], ...)
4.
apply(x, 2, testFunc, y = y)
3.
filterVarImp(x_dat, y_dat, nonpara = nonpara, ...)
2.
varImp.train(mod, scale = FALSE)
1.
varImp(mod, scale = FALSE)

Я думал, что сделал все так же, как и документация. Я новичок в R и Карет, так что это действительно смущает меня. Любая помощь приветствуется, спасибо заранее.

Редактировать: Спасибо за рекомендации по вопросу! Что касается набора данных, я думаю, что я не могу публиковать его где-либо, поэтому я вручную создал меньшую матрицу, которая по-прежнему воспроизводит ошибку, описанную выше.

    Group   f1      f2      f3       f4      f5
    0      5377.8   3506.9  1999.3   1659.9  448.7
    0      7963.4   4016    931.2    970     468
    0      5175.2   2449.8  802      1191.7  110.2
    0      6542     2198    938.8    965.5   115.1
    1      5641.2   3936.1  1639.5   1206    520.7
    1      8136.8   3527.7  1931     1765.1  582.4
    1      7195.5   2496.2  1650.8   1387    406.3

и я использовал

metrics$Group <- as.factor(metrics$Group) 

для установки столбца группы в качестве категориальных переменных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...