1 votos

Neuralnet en R no me da lo que quiero ver

Actualmente estoy trabajando en una investigación y estamos intentando hacer una predicción de series temporales utilizando redes neuronales. Para empezar, he utilizado el artículo publicado por G. Peter Zhang ( Previsión de series temporales mediante un modelo híbrido ARIMA y NN ) ya que no soy experto ni en R ni en estadística, me vendría muy bien algo de ayuda.

Tengo R y la configuración neuralnet lib y luego tomó el conjunto de datos de Lynx, a continuación, crear un marco de datos con los datos de largo con los lags para establecer como entrada. Mis datos ahora se ven algo así (esto es sólo para t, t-1, y t-2 lags)

     x     x1    x2
1   269    NA    NA
2   321   269    NA
3   585   321    269

Ahora quiero entrenar una NN con la entrada x1 y x2 y obtener la salida en x.

Hago el entrenamiento con el siguiente código

nn <- neuralnet(x~x1+x2, data=dat, hidden = 2, linear.output = T) # I am using t-1 ... t-4 so using hidden layer of 2

Esto sí entrena el modelo, pero el error es realmente alto, y cuando lo uso para hacer cualquier cálculo el resultado de la neurona de la segunda capa es siempre 1. Estuve discutiendo con algunos amigos y me dijeron que es porque tal vez estoy usando la función de activación equivocada. Busqué en la ayuda del act.fct y probé con ambos logistic y tanh pero los resultados siguen siendo los mismos.

Llevo unos días atascado en esto, así que me vendría muy bien algo de ayuda. ¿Es posible que esté haciendo algo mal? ¿O me falta algo?

Gracias

0voto

Subir Kumar Sao Puntos 136

Así que, probablemente responda a mi propia pregunta, ya que ahora, después de más de una semana de intentar averiguar lo que iba mal, creo que sé lo que estaba haciendo, y cómo quizás solucionarlo.

En primer lugar, yo estaba teniendo el problema con las neuronas de la capa oculta, en el que siempre la salida 1, ahora que era absurdo y me hizo un poco de mirar bajo el capó, resulta que todo era como debe ser, es decir. El error proviene del hecho de que el modelo no está ajustando los pesos para reducir las entradas a la capa oculta, y si la entrada a la capa oculta es cualquier lugar cerca de 10 la función sigmoide es la salida de un 1, que es entonces un desastre. Normalmente asumiría los pesos para compensar esto, pero de alguna manera no está sucediendo. Una solución que encontré y que parece estar bien por el momento es normalizar los datos, lo que me da mejores resultados, pero no tan buenos como esperaba. ¿Y qué? Usar MATLAB me da un gran OP

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X