天天看點

實時股票預測的開源參考結構

實時股票預測的開源參考結構

有這樣一個傳說,将人工智能和機器學習算法用于伺服器農場後,你就可以搬家到夏威夷,在讓機器交易的同時你終日躺在沙灘上享受生活。但是,問題在于交易市場是不斷變化的:經濟力量,新産品,競争,世界事件,法規,甚至推特都是因素。雖然沒有免費的午餐,在開放源碼機器學習算法和資料分析平台的幫助下,公司仍然可以得到一個“更好,更健康,更便宜的午餐”。在股票市場中,檢視曆史股票價格并嘗試用不同的模型來預測未來是一種常見的做法。

雖然這篇文章不能提供股票分析的細節,但它提出了一種用于解決大規模實時資料分析問題的方法,在一個可高度擴充和延伸性的參考架構下使用開放源代碼工具。下面的架構專注于金融交易,但也适用于幾乎任何一個行業的實時使用需求。關于這篇文章所讨論的構架的更多資訊也可在網上通過linux基金會,slideshare,youtube,和pivotal open source hub閱讀,同時這個架構的元件也可以通過這些網站下載下傳。

架構:股票預測與機器學習

概括而言,股票預測和機器學習的架構(如下圖所示)支援一個由預測模型推動的優化過程,并有三個基本組成部分。首先是輸入,實時交易資料必須被捕獲和存儲,變為曆史資料。其次,系統必須能夠從資料的曆史趨勢中學習,并通過識别規律和機率來做出決定。第三,系統需要把新的交易資料與曆史資料的規律和機率進行實時對比。然後預測出結果并決定采取何種行動。

實時股票預測的開源參考結構

上圖是簡化版,該類型的結構在系統範圍增加的情況下還有幾個基本因素要考慮。其中重要的是,資料量和系統內建。許多不同來源和類型的資料被用來預測結果,以及各種各樣的彙資料處理。在一個20個資料源和20個處理彙的環境裡,實時功能仍需要非常低延遲的操作。這展現了擴充問題的兩個面。首先,資料處理應用程式要解決橫向擴充就需要增加更多的節點,并保持非常快速的實時響應。其次,久而久之系統會存儲更多的資料。除了曆史資料集的增加,不同的分析工作也要同時運作來提高模型的預測性。

在系統架構中使用開源元件

如果把每一個高層次元件擴充到更具體的細節,開源産品可以運用到整個架構的各個功能部分。這些包括springxd (現在叫spring cloud data flow),geode (孵化中),spark mllib, apachehawq,和apache hadoop™。

實時股票預測的開源參考結構

資料流和資料通道大緻可以分為六個步驟,如上圖所示,具體的講解會在下面展示。更重要的是,每個元件都具備松散耦合和橫向擴充性的特征。

spingxd讀取和處理來自雅虎金融網絡伺服器叢集的api提供的實時資料。springxd極大簡化了資料流的業務流程,并為系統內建提供内置連接配接器,springxd是基于java語言的産品,可以處理各種轉換。資料通過springxd後,被儲存到一個具有快速,穩定,靈活,和線性擴充的系統記憶體裡面,這個系統叫apache geode(孵化中),系統還可以提供事件的資料分發處理。

通過使用apache geode提供的新鮮資料,spark mlib的應用程式建立和訓練一個用于對比新資料與曆史資料之間規律的模型。其它工具也同樣支援這些模型,例如apachemadlib 或者 r。

機器學習模型得到的結果會被推送到其它應用進行處理,同時結果會在apache geode上更新,并進行實時預測和決策。

随着資料越來越多,舊的資料從最初的apache geode 被轉移到apache hawq, 最後被儲存在apache hadoop中。apachehawq 支援基于拍位元組的sql查詢,同時也允許資料科學家疊代并優化他們的模型。

另外一個處理程式被觸發了,使用已收集的曆史資料去有規律地重複訓練和更新機器學習模型。在這程式裡面,當曆史資料發生改變或是有新的模型出現時,它會關閉資料循環,建立持續更新,并進行優化。

一個可在筆記本電腦上運作的簡化架構

為了能讓系統在一個普通筆記本電腦上運作,其架構需要被簡化。linux foundation 在匈牙利的布達佩斯舉行的apache big data 2015 展會上展示了這一方法。簡單來講,這個方法是把長期資料存儲元件從apache hawq 和 apache hadoop 上移除。

實時股票預測的開源參考結構

在這個解決方案中,每個元件的功能都有一個具體定義并且會根據需求在本地擴充或者在雲端拓展。為了達到友善排程,維護和支援的目的,開源元件可以與pivotal clould foundry 進行連接配接用于處理程式運作,pivotalgemfire 取代了apache geode 或者pivotalbig data suite 裡的其它元件,用于處理大型的曆史資料集。

github支援這一架構,另外一個例子是javafx。雅虎金融的新資料被springxd采集後推送到apache geode的伺服器上,然後apache geode把這些資料推送到javafx,javafx把這些實時資料更新并将這些資料以可視化形式呈現給使用者。另外還有一個叫股票資訊模拟器的應用,它能夠在由于沒有網絡連接配接而無法收集資訊的情況下使用,或者是為了二次開發而使用。

實時股票預測的開源參考結構

根據上圖所示,資料正在被實時收集然後生成相應的指數,比如最後收盤價,平均指數和預測平均指數。

更多相關學習

這個系統的源碼和安裝教程可以在pivotal open source hub上找到。下載下傳的檔案中也包括一個vagrant box的虛拟環境,當中包含了所有需要的元件。

從linux foundation, slideshare, or youtube獲得更多的資訊

通路與apache geode website, pivotal gemfire website相關話題的文章

檢視apache geode website, pivotal gemfire website網站

閱讀apache madlib詳情

editor’s note: ©2015 pivotal software, inc. all rights reserved.pivotal, pivotal greenplum, pivotal gemfire and pivotal cloud foundry aretrademarks and/or registered trademarks of pivotal software, inc. in the unitedstates and/or other countries. apache, apache hadoop, hadoop, apache geode,apache madlib, apache hawq, and apachespark are either registered trademarks or trademarks of the apache softwarefoundation in the united states and/or other countries.

編者注記:相關版權©2015 pivotal software, inc. all rights reserved.pivotal, pivotal greenplum, pivotal gemfire and pivotal cloud foundry aretrademarks and/or registered trademarks of pivotal software, inc. in the unitedstates and/or other countries. apache, apache hadoop, hadoop, apache geode,apache madlib, apache hawq, and apachespark are either registered trademarks or trademarks of the apache softwarefoundation in the united states and/or other countries.

原文釋出時間為:2016-01-06

本文來自雲栖社群合作夥伴“大資料文摘”,了解相關資訊可以關注“bigdatadigest”微信公衆号

繼續閱讀