R Caret NNET пакет

У меня есть два объекта R, как показано ниже.

матрица "datamatrix" - 200 строк и 494 столбца: это мои переменные x

фрейм данных Y. Y$V1 - моя переменная Y. Я преобразовал столбец V1 в фактор, который я строю, в модели классификации.

Я хочу построить нейронную сеть, и я побежал ниже команды.

model <- train(Y$V1 ~ datamatrix, method='nnet', linout=TRUE, trace = FALSE,
               #Grid of tuning parameters to try:
               tuneGrid=expand.grid(.size=c(1,5,10),.decay=c(0,0.001,0.1))) 

Я получил ошибку - " argument "data" is missing, with no default"

Есть ли способ для пакета caret понять, что у меня есть мои переменные X в одном объекте R и переменная Y в другом? Я не хочу объединять два объекта данных, а затем написать формулу, так как формула будет слишком длинной

Y~x1+x2+x3.................x199+x200....x493+x494

1 ответ

Решение

argument "data" is missing ошибка устраняется путем добавления data = datamatrix аргумент train вызов. То, как я бы это сделал, было бы примерно так:

datafr <- as.data.frame(datamatrix)

# V1 is the first column name if dimnames aren't specified
datafr$V1 <- as.factor(datafr$V1)

model <- train(V1 ~ ., data = datafr, method='nnet', 
               linout=TRUE, trace = FALSE,
               tuneGrid=expand.grid(.size=c(1,5,10),.decay=c(0,0.001,0.1))) 

Теперь вам не нужно извлекать переменную ответа отдельно.

. идентификатор позволяет включать все переменные из datafr (подробности см. здесь)

Другие вопросы по тегам