使用神经网络进行天气预报

时间:2010-02-07 18:39:56

标签: neural-network prediction backpropagation

我正在尝试使用backpropagation编写一个天气预报程序。我是这个领域的初学者。我有不同参数的历史数据,如温度,湿度,风速,降雨等。

我对如何将这些数据提供给输入层感到困惑。是否为每个输入节点提供给定日期的整个数据,或者我是否需要为每个参数设置不同的网络?我也对输出层感到困惑。

3 个答案:

答案 0 :(得分:3)

在输入图层中,输入数据的每个维度(天气,风等)都有X个单独的节点,其中X是要回顾的天数(比方说4-7)。然后你应该将每个输入维度标准化在一个合适的范围内,比如说[-1.0,1.0]。

让第二个“隐藏”层与第一层完全互连(并且还有一个固定1.0输入“偏置”节点作为固定点)。这里的节点应该少于输入层中的节点,但这只是一个经验法则,您可能需要进行实验。

最后一层是您的输出层与第二层完全互连(并且还会产生偏差)。每个维度都有一个单独的输出神经元。

不要忘记在输入和输出上使用标准化值进行训练。由于这是一个时间序列,您可能不需要随机化训练数据的顺序,而是随着时间的推移喂它们 - 您的网也将学习时间关系(运气好:):

(另请注意,有一种称为“时间反向传播”的方法,该方法针对时间序列数据进行了调整。)

答案 1 :(得分:2)

在我看来,决策树可能比神经网络更好地解决这个问题。 Here描述了决策树的工作原理。此外,还有可用的软件具有包括神经网络在内的各种分类器的实现。我和Weka合作过,效果很好。还有一些库可用于将Weka的功能与Java和C#等编程语言结合使用。如果您决定使用Weka,请确保您熟悉here所述的.arff格式。

答案 2 :(得分:2)

我使用过(并拥有)这本书:Introduction to Neural Networks with Java

我发现它是一个有用的参考。它涵盖了相当多的NN主题,包括反向传播。