2014-12-02 7 views
0

У меня есть кадр данных, Data, который имеет 10 столбцов. Первые 6 - это входные значения, а следующие 4 столбца - это выходные значения.neuralnet для множественной регрессии

head(Data) 
x1  x2  x3  x4  x5  x6  y1  y2  y3  y4 
200  400  1.8  100  50  10  3884  3.9 5.98  1.91 

Я хочу использовать нейронную сеть для прогнозирования значений выходов с помощью neuralnet пакета. Когда я использую следующий код, я получаю сообщение об ошибке следующим образом:

model <- neuralnet(Data[1:30,1:6], Data[1:30,7:10], data=Data, hidden=c(5,7), err.fct="ce", linear.output=FALSE) 

Error in varify.variables(data, formula, startweights, learningrate.limit, : 
    (list) object cannot be coerced to type 'double' 

Не могли бы вы сказать мне, что случилось с этим кодом?

ответ

0

Похоже, что вы не используете neuralnet правильно.

  1. Сначала вы должны указать вашу формулу как это: y1 + y2 + y3 + y4 ~ x1 + x2 + x3 + x4 + x5 + x6

  2. Так как вы решаете проблему регрессии, вы должен использовать значение по умолчанию «sse» Для err.fct вместо «ce»

  3. Опять же, для проблемы с регрессией я считаю, что вам следует выбрать функцию линейной активации, поэтому нет необходимости указывать «linear.output = FALSE "

Таким образом, вы можете позвонить neuralnet так:

модель < - neuralnet (y1 + y2 + y3 + y4 ~ x1 + x2 + x3 + x4 + x5 + x6, данные = данные, скрытые = с (5,7))

Также, возможно, вам придется перемасштабировать свои функции ввода перед вызовом neuralnet.

Оформить документ здесь: http://cran.r-project.org/web/packages/neuralnet/neuralnet.pdf

Смежные вопросы