2010-02-07 14 views
11

Estoy tratando de escribir un programa para el pronóstico del tiempo usando backpropagation. Soy un principiante en este campo. Tengo datos históricos con diferentes parámetros como temperatura, humedad, velocidad del viento, precipitaciones, etc.Previsión del tiempo utilizando una red neuronal

No estoy seguro acerca de cómo proporcionar estos datos a la capa de entrada. ¿Se debe dar a cada nodo de entrada la totalidad de los datos para un día determinado, o necesito tener una red diferente para cada parámetro? También estoy confundido acerca de la capa de salida.

Respuesta

1

Me parece que los árboles de decisión podrían ser una mejor solución a este problema que las redes neuronales. Here es una descripción de cómo funcionan los árboles de decisión. Además, hay un software disponible que tiene implementaciones de varios clasificadores, incluidas las redes neuronales. He trabajado con Weka y funciona muy bien. También hay bibliotecas que puede utilizar para utilizar la funcionalidad de Weka con lenguajes de programación como Java y C#. Si decides trabajar con Weka, asegúrate de familiarizarte con el formato .arff que se describe en here.

+0

Si está interesado en usar Weka, una opción podría ser probar Knime, un paquete de flujo de trabajo basado en eclipse que incluye primitivos Weka. –

+0

Tengo curiosidad por cómo aplicar los árboles de decisiones a este problema. – brian

+0

Los bosques aleatorios son divertidos – ron

2

En la capa de entrada, tiene X nodos separados para cada dimensión (clima, viento, etc.) de los datos de entrada, donde X es el número de días para mirar hacia atrás (digamos 4-7). Entonces debería normalizar cada dimensión de entrada en un rango adecuado, digamos [-1.0, 1.0].

Disponer de una segunda capa "oculta" totalmente interconectada con la primera capa (y también con un nodo "parcial" de entrada de corrección 1.0 para que sirva como un punto fijo). Debería haber menos nodos aquí que en la capa de entrada, pero eso es solo una regla general, es posible que deba experimentar.

La última capa es la capa de salida completamente interconectada con la segunda capa (y también se cae en un sesgo). Tener una neurona de salida separada para cada dimensión.

No olvide capacitarse con los valores normalizados tanto en la entrada como en la salida. Como se trata de una serie temporal, es posible que no necesite aleatorizar el orden de los datos de entrenamiento, sino alimentarlos a medida que lleguen a tiempo: su red también aprenderá las relaciones temporales (con suerte :)

(También tenga en cuenta que existe un método llamado "backpropagation temporal" que está sintonizado para los datos de series de tiempo)

+0

¿Sería correcto suponer que las variables más relacionadas incluyeron la más precisa? es decir, utilizando {Temp, Presión, Humedad}, mejor que {Precipitaciones, Velocidad del viento, Índice UV}? –

+0

@ Aaron: Siempre es mejor usar más variables relacionadas, sin embargo, si existe una relación fuerte, la red también podría aprender utilizando otras variables. También tenga en cuenta que la transformación de algunos datos puede ser necesaria (por ejemplo, para registrar la escala, etc.) para que la red pueda estudiar mejor. – ron

Cuestiones relacionadas