пакет R Caret nnet

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

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

dataframe 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

person user2543622    schedule 16.04.2015    source источник
comment
спасибо ... кажется, работает ... пожалуйста, оставьте свой комментарий в качестве ответа   -  person user2543622    schedule 16.04.2015


Ответы (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 (см. здесь для подробностей).

person alexforrence    schedule 16.04.2015