開源項目Easy Machine Learning簡介

Easy Machine Learning這個項目是網絡數據挖掘課上老師團隊做系統,推薦給我們用來做大作業,目前只學了點皮毛,先對項目的簡介進行大概的翻譯。原項目地址

什麼是Easy Machine Learning

機器學習算法已經成爲許多大數據應用的關鍵組成部分。然而,機器學習的全部潛力還遠遠沒有發揮出來,因爲使用機器學習算法是困難的,尤其是在Hadoop和Spark等分佈式平臺上。關鍵障礙不僅來自於算法本身的實現,還包括將它們應用到實際應用程序中的處理,這些應用程序通常涉及多個步驟和不同的算法。
我們的平臺Easy Machine Learning提供了一種通用的基於數據流的系統,用於簡化將機器學習算法應用到現實世界任務的過程。在系統中,一個學習任務被制定爲一個有向無環圖(DAG),其中每個節點代表一個操作(例如機器學習算法),每個節點代表從一個節點到其後代的數據流。任務可以手動定義,也可以從現有的任務/模板中克隆。在向雲提交任務後,每個節點將自動按照DAG執行。爲使用戶創建、配置、提交和監視任務的拖放方式實現了圖形用戶界面。
系統的優勢如下:
1. 降低了定義和執行機器學習任務的障礙;
2. 共享和重用算法的實現,工作任務,以及實驗結果;
3. 在一項任務中無縫集成獨立算法和分佈式算法。

該系統由三個主要組成部分組成:

  • 分佈式機器學習庫:不僅實現了常用的機器學習算法,而且還實現了數據預處理/後處理、數據格式轉換、特徵生成、性能評估等算法。這些算法主要是基於Spark實現的。

  • 一個基於gui的Machine Learning Studio系統:允許用戶創建、配置、提交、監視和分享他們的機器學習過程。機器學習庫中的所有算法都可以在Studio系統中進行訪問和配置。它們是構建機器學習任務的關鍵構件。
    這裏寫圖片描述

  • 執行任務的雲服務。我們基於Hadoop和Spark的開源大數據平臺構建服務。爲了構建一個平臺,我們在Docker上組織了一個服務器集羣。從GUI接收任務DAG後,每個節點將自動調度,在所有依賴數據源就緒後運行。節點上的算法會根據它們的實現在Linux、Spark或map - reduce中運行。
    這裏寫圖片描述

如何包含到我的工程?

pull整個項目,並準備一些必要的環境和開發工具。

如何使用Easy Machine Learning Studio

啓動EasyML工程後,訪問:http://localhost:18080/EMLStudio.html,使用賬號[email protected] 密碼: bdaict。推薦使用Chrome打開。
這裏寫圖片描述
如下圖所示,用戶可以使用頁面左側面板中列出的算法和數據集創建機器學習任務(dataflow DAG)。可以選擇點擊程序和數據面板中列出的算法和數據集。還可以單擊作業面板,選擇現有任務,克隆它,並進行必要的修改。用戶可以在右側面板中配置每個節點的任務信息和參數值。任務中的節點可以對應於獨立的Linux程序或運行在Spark或Hadoop map - reduce上的分佈式程序。
這裏寫圖片描述
在單擊submit按鈕之後,該任務將提交到雲上運行。每個節點的狀態用不同的顏色表示,如下圖所示。
這裏寫圖片描述
用戶可以右擊完成執行節點的綠色輸出端口預覽輸出數據。可以從每個完成執行節點的右擊菜單中檢查stdout和stderr日誌。用戶可以通過右鍵單擊相應的輸出端口來檢查節點的輸出。在執行過程中打印的標準輸出和標準錯誤信息可以通過右擊相應的節點來檢查,並選擇菜單顯示STDOUT和Show STDERR。
這裏寫圖片描述
完成的(無論成功與否)任務可以被進一步修改並重新提交以運行,如下圖所示。我們的系統只會安排受影響的節點運行。未受影響節點的輸出被直接重用,以節省運行時間和系統資源。
這裏寫圖片描述
用戶可以上傳自己的算法包和數據集,用於創建自己的任務或與其他用戶共享。通過單擊upload program按鈕,彈出窗口允許用戶指定算法包的必要信息,包括名稱、類別、描述和命令行模式字符串等,如下圖所示。最重要的是用預定義的格式編寫命令行模式字符串。它定義了一個節點的輸入端口、輸出端口和參數設置。我們在面板中開發了一個工具,幫助用戶編寫命令行字符串模式。通過點擊上傳數據按鈕,用戶可以上傳一個類似於上傳算法包的數據集。
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章