2010-10-17 72 views
9

我在R中檢查一個簡單的移動平均交叉策略,而不是在2維的參數空間上運行一個巨大的仿真(短期移動平均長度,長期移動平均長度),我想實施粒子羣優化算法以找到最佳參數值。我一直在瀏覽網頁,並且讀到這個算法非常有效。此外,算法的工作方式使我着迷...R中粒子羣算法的實現

有沒有人有你在R中實現這個算法的經驗?有沒有有用的軟件包可以使用?

非常感謝您的意見。

馬丁

回答

17

嗯,對CRAN提供了一個叫做pso,實際上它是一個粒子羣優化(PSO)。

我推薦這個軟件包。

它正在積極開發中(最後更新於2010年9月22日),與PSO的reference implementation一致。此外,該軟件包還包含用於診斷和繪製結果的功能。

它似乎是一個複雜的軟件包,但主功能界面(功能psoptim)很簡單 - 只需傳入一些描述問題域的參數和成本函數即可。

更確切地說,關鍵參數傳遞的,當你調用psoptim:問題的

  • 尺寸,作爲載體 (面值);

  • 上限和下限爲每個 變量(更低,上限);和

  • 的成本函數(FN

中有psoptim方法簽名等參數;這些通常與收斂標準等有關)。

R中是否還有其他PSO實現?

對於(並行PSO),有一個名爲ppso的R包。它在R-Forge上可用。我對這個軟件包一無所知。我已經下載並刪除了文檔,但就是這樣。

除了這兩個,我沒有意識到。大約三個月前,我尋找了更受歡迎的元啓發式的R實現。這是我知道的唯一的pso實現。與Gnu科學圖書館GSL的R綁定)具有模擬退火算法,但沒有任何生物啓發元啓發式。

另一個地方,當然是優化的CRAN Task View。除了我在這裏敘述的內容之外,我沒有發現另一個PSO實現,雖然列出了很多軟件包,但其中大多數我沒有查看除了查看名稱和單句總結之外的其他內容。

+1

在R中還有魯棒迴歸和粒子羣優化:http://comisef.wikidot.com/tutorial:robustregressionwithheuristics – 2012-08-16 20:12:43