2010-02-07 80 views
11

我想編寫一個使用backpropagation進行天氣預報的程序。我是這個領域的初學者。我有溫度,溼度,風速,降雨等不同參數的歷史數據。使用神經網絡的天氣預報

我對如何將這些數據提供給輸入層感到困惑。每個輸入節點都可以在給定的一天內得到整個數據,還是每個參數需要不同的網絡?我也對輸出層感到困惑。

回答

1

在我看來,決策樹可能比神經網絡更好地解決這個問題。 Here是決策樹如何工作的描述。此外,還有可用的軟件實現了各種分類器,包括神經網絡。我和Weka合作過,效果很好。還有一些庫可用於通過編程語言(如Java和C#)來利用Weka的功能。如果您決定與Weka合作,請確保您熟悉描述here的.arff格式。

+0

如果您有興趣使用Weka,可以嘗試一下Knime,它是一個基於eclipse的工作流程包,其中包含Weka原語。 – 2010-02-07 18:49:56

+0

我很好奇你如何將決策樹應用於這個問題。 – brian 2010-02-08 14:51:06

+0

隨機森林很有趣 – ron 2011-02-13 20:04:55

2

在輸入層中,每個維度(天氣,風等)都有X個單獨的節點用於輸入數據,其中X是回顧的天數(比如說4-7)。那麼你應該將每個輸入維度標準化在合適的範圍內,比如說[-1.0,1.0]。

有第二層與第一層完全互聯的「隱藏」層(還有一個固定1.0輸入「偏置」節點作爲固定點)。這裏的節點數應該少於輸入層,但這只是一個經驗法則,您可能需要進行試驗。

最後一層是您的輸出層與第二層完全互連(並且有偏差)。每個維度都有一個單獨的輸出神經元。

不要忘記在輸入和輸出上都使用標準化值進行訓練。由於這是一個時間序列,因此您可能不需要隨機化訓練數據的順序,但隨着時間的推移將它們反饋 - 您的網絡也會學習時間關係(運氣:)

(還請注意, 。一個稱爲

+0

假設包含更多相關變量的準確度更高嗎?即使用{Temp,Pressure,Humidity},優於{Rainfall,Windspeed,UV Index}? – 2011-02-11 02:13:36

+0

@Aaron:使用更多相關變量總是會更好,但是如果存在強大的關係,網絡也可能使用其他變量學習。還請注意,可能需要轉換某些數據(例如對數等)以便網絡更好地學習。 – ron 2011-02-13 20:06:07

1

我已經使用(和自己的)這本書「暫時反向傳播」,其被調諧的時間序列數據)方法:Introduction to Neural Networks with Java

我發現它的有用參考。它涵蓋了相當多的NN主題,包括反向推廣。