1. 程式人生 > >結合Apache Ignite探索機器學習

結合Apache Ignite探索機器學習

此前的文章中,我們討論過Apache Ignite機器學習網格。當時僅有測試版。在隨後的版本2.4中,機器學習得以運用。新版本對部分內容進行了更新,支援基於分割槽的資料集以及遺傳演算法。Apache Ignite提供了多種可獨立執行的機器學習示例,將入門學習變得簡易。在本系列的後續文章裡,我們將利用Ignite支援的機器學習演算法對部分開源資料集進行分析。

簡介

我們將在本部分對機器學習網格進行簡單的回顧,圖1展示了機器學習網格的結構。

figure1

圖1:機器學習網格

首先,Apache Ignite所呈現的機器學習能力相當實用,可在Ignite內直接構建預測模型。基於此,使用者在不採取高代價ETL(Extract-Transform-Load)過程或資料傳輸的情況下,獲取高規模高效能的預測模型。

在Ignite出現之前,機器學習模型得訓練和部署在不同的系統上。例如,使用者需要將資料移出Ignite,接著使用其它工具對資料進行訓練,這樣模型才能部署到不同的系統中。此方法存在如下缺點:

  • 需要一個花費昂貴的ETL 程序,特別是針對大型資料集。
  • 在進行ETL時會對資料進行快照。之後,實時系統中的資料也許會發生改變,所以需要將已訓練的資料存放至訓練集中。

其次,現今多數系統需處理大量的資料,這些資料通常會超過單個伺服器容量。分散式計算很好的解決了這個問題,但一些平臺並非為資料儲存和操作而設計,它們僅適合訓練。所以,研發人員需要考慮如何在生產環境中解決由部署所引發的複雜問題。

Ignite所呈現的機器學習能力致力於解決如下問題:

  • 結合Ignite處理資料,能避免因不同系統之間轉換而導致的ETL昂貴問題。
  • Ignite能夠提供分散式計算,實現對資料的儲存及操作。
  • Ignite更新了部分機器學習演算法,此舉對分散式計算進行了優化,並且可充分利用Ignite進行並置處理。
  • Ignite能作為流式資料的接收器,允許機器學習實時應用。

機器學習通常是一個迭代過程,上下文可能會在演算法執行時發生改變。因此,為了避免工作損失和延遲,Ignite支援了基於分割槽的資料集,使其能夠應對節點故障問題。

原文連結