обещание уже находится под ошибкой оценки в функции rfe R Caret

У меня есть матрица X и вектор Y, которые я использую в качестве аргументов в функции rfe из пакета caret. Это так же просто, как:

Я получаю странную ошибку, которую я не могу расшифровать:

обещание уже находится на стадии оценки: рекурсивная ссылка на аргумент по умолчанию или более ранние проблемы?

РЕДАКТИРОВАТЬ: Вот воспроизводимый пример для первых 5 строк моих данных:

library(caret)

X_values = c(29.04,96.57,4.57,94.23,66.81,26.71,69.01,77.06,49.52,97.59,47.57,64.07,24.25,11.27,77.30,90.99,44.05,30.96,96.32,16.04)
X = matrix(X_values, nrow = 5, ncol=4)
Y = c(5608.11,2916.61,5093.05,3949.35,2482.52)

rfe(X, Y)

Моя версия R 3.2.3. Пакет каре 6.0-76.

Кто-нибудь знает, что это такое?


person Aleksandar Jovanovic    schedule 23.04.2017    source источник
comment
Предоставьте воспроизводимый пример.   -  person David Heckmann    schedule 23.04.2017
comment
Я был бы признателен, если бы вы удалили плохие оценки для моего вопроса после редактирования или уточнили, почему вы их оставили.   -  person Aleksandar Jovanovic    schedule 23.04.2017


Ответы (1)


Есть две проблемы с вашим кодом.

  1. Вам нужно указать функцию/алгоритм, который вы хотите установить. (это то, что вызывает сообщение об ошибке, которое вы получаете. Я не уверен, почему rfe выдает такое загадочное сообщение об ошибке; это действительно затрудняет отладку.)
  2. Вам нужно назвать свои столбцы во входных данных.

Следующие работы:

library(caret)

X_values = c(29.04,96.57,4.57,94.23,66.81,26.71,69.01,77.06,49.52,97.59,47.57,64.07,24.25,11.27,77.30,90.99,44.05,30.96,96.32,16.04)
X = matrix(X_values, nrow = 5, ncol=4)
Y = c(5608.11,2916.61,5093.05,3949.35,2482.52)

ctrl <- rfeControl(functions = lmFuncs)
colnames(X) <- letters[1:ncol(X)]

set.seed(123)
rfe(X, Y, rfeControl = ctrl)

Я выбрал линейную модель для rfe. Причиной предупреждающих сообщений является малое количество наблюдений в ваших данных во время перекрестной проверки. Вы, вероятно, также захотите установить аргумент sizes, чтобы получить значимое исключение функций.

person David Heckmann    schedule 23.04.2017
comment
Я получаю ту же ошибку, если пытаюсь вызвать rfe(X, Y, ctrl), а не rfe(X, Y, rfeControl=ctrl) - person Brian D; 16.12.2017