Ø 摘要算法
近年來,隨着人臉識別、語音識別等技術的突破性進展,隱藏在它們背後的底層技術也引發工程和研究人員的高度重視,譬如機器學習。然而,機器學習是一個入門門檻相對比較高的技術領域,大部分的工程技術人員和業務人員都聚焦在業務領域的特徵提取,算法選擇,參數調優和模型驗證上,所以一個方便高效的可視化工具,對於下降用戶的機器學習學習曲線、提高工做效率顯得尤其重要。數據庫
本報告主要從開源和商業領域選取了WEKA、RapidMiner、KNIME、明略、東軟RealRec五款具備行業表明性的可視化機器學習工具,首先對它們進行功能性分析,剖析並總結各工具的核心特色,而後從工具支持機器學習算法程度、可視化能力、不一樣用戶羣學習難易度、對主流大數據平臺支持程度以及軟件成熟度和使用成本六個維度進行比較,經過對比發現它們各自的優缺點和適用範圍,爲使用者在從此機器學習工做中提供技術選型建議。編程
Ø 正文api
近年來,隨着人臉識別、語音識別等技術的突破性進展,隱藏在他們背後的底層技術也引發工程和研究人員的高度重視,譬如機器學習。機器學習是人工智能領域的一個核心研究方向,它是一個多學科交叉的產物,在不少應用領域發揮了重要的實用價值,特別是在數據挖掘、語音識別、圖像識別、機器人、信息安全等領域取得了矚目的成果。然而,機器學習也是一個入門門檻相對比較高的技術領域,大部分的技術人員都聚焦在特徵提取,算法選擇和參數調優上,而非算法實現和優化,所以一個方便高效的工具,即是十分重要。瀏覽器
目前機器學習領域大量的工具都是編程性的機器學習庫,譬如R、Python以及深度學習庫caffe、tensorflow等,這些機器學習工具都具備必定的門檻,學習曲線比較高,不適合通常的業務和數據分析人員。所以市場上也出現了一系列的可視化機器學習工具,用於下降相關技術人員的學習曲線,提高工做效率。譬如,在國外市場,RapidMiner和KNIME長期處於Gartner高級分析平臺魔力象限領導者位置;在國內,明略DataInsight是領域的新銳,並行算法優化多,得到2016年大數據龍頭企業獎;東軟RealRec已在幾個行業中獲得應用;而在純開源領域WEKA絕對是可視化機器學習的佼佼者。緩存
鑑於RapidMiner、KNIME、DataInsight、東軟RealRec以及WEKA在可視化領域的表明性和開放性,本文選取了上述這四種可視化機器學習工具,對它們進行概述和分析,總結其各自的特色,並經過對比發現它們各自的優缺點和適用範圍,爲使用者在從此的選擇過程當中提供幫助。安全
因爲數據挖掘領域使用了大量的機器學習算法,所以,機器學習工具軟件通常隸屬於數據挖掘工具,是數據挖掘工具的子集。網絡
WEKA是一款免費開源的機器學習和數據挖掘可視化工具軟件,其操做簡便,運行速度快,尤爲適合小規模的機器學習建模,是機器學習入門的不二選擇。架構
圖1:WEKA建模示意圖eclipse
WEKA Knowledge Flow 具備如下功能特色:
(1) 可移植性。WEKA基於Java 編程語言進行操做,從而幾乎任何現代計算平臺均可以運行。
(2) 支持標準的機器學習任務,包括數據預處理、聚類、分類、迴歸以及特徵選擇。各方面任務特色以下:
ü 數據預處理任務從數據庫、CSV 文件等輸入數據,並使用過濾算法對數據進行預處理。這些過濾器可用於轉換數據(例如連續型數值屬性變成離散型),從而根據具體的標準刪除實例和屬性。
ü 關聯分析任務提供了不一樣的關聯規則學習算法,譬如Apriori或FP-growth等,方便找出數據屬性之間全部重要的關聯關係。
ü 分類任務提供了貝葉斯、決策樹、隨機森林等不一樣的分類器進行數據分類學習,此外,使用戶應用分類和迴歸算法的結果數據集,去評估預測模型產生結果的準確性,並可視化錯誤預測、ROC 曲線和模型自己(若是模型是適合可視化的,如貝葉斯)。
ü 聚類面板給WEKA提供了聚類技術,如簡單的K-Means算法,也能夠用指望最大化算法進行混合正態分佈的學習。
ü 特徵選擇屬性任務提供了數據集中大多數預測屬性的識別算法。
(3) WEKA KnowledgeFlow的全部技術是創建在數據可做爲一個單一的平面文件或關係這個假設前提上的,其中每一個數據點被設計成一個固定數量的屬性(一般是數字或名義的屬性,但一些其它的屬性類型也被支持)。所以WEKA Knowledge Flow 不能進行多位關係數據挖掘,但有獨立的軟件能夠將鏈接的數據庫錶轉換成一個單一的表,使其可使用WEKA 進行處理。
RapidMiner是集數據挖掘,機器學習,預測分析和商業智能爲一體的可視化工具軟件,包括文本挖掘、多媒體挖掘、功能設計、數據流挖掘、集成開發方法和分佈式數據分析等。本文主要對RapidMiner 7.1 進行比較研究。
圖2:RapidMiner建模示意圖
RapidMiner(以RapidMiner V7爲例)具備如下特色:
(1) 包含徹底集成的機器學習庫WEKA,提供關於數據集成、轉換和建模方法的最全面的機器學習解決方案。
(2) 免費提供大量的數據抽取功能。包括Oracle、IBM DB二、MS SQL Server、 MySQL、Ingres、Postgres、Teradata 等全部常見的數據庫。支持Excel、SPSS、CSV、Dbase、Arff、 DasyLab等多種格式的數據源,以及ASCII,、PDF、HTML 和XML 格式的文本文檔和和網頁、時間序列數據等。
(3) 具備強大直觀的圖形用戶界面設計分析過程。經過許多尖端的高維數據實現可視化建模和數據探索功能,造成在線的1D、2D、3D 圖,以及Andrews、平行、誤差和SOM 視圖等。
(4) 具備模塊化系統,使分析過程具備極大的靈活性和擴展性。RapidMiner 擁有超過500 個數據集成和轉化,分析和評估的模塊工具。其中數據集成和分類工具包括支持向量機(SVM)、規則學習者、決策樹、貝葉斯、高斯過程、神經網絡、優化評估、boosting 算法、Apriority、FPGrowth 以及聚類等。評估工具包括交叉檢驗、leave-one-out、滑動時間窗、回溯測試、顯着性檢驗以及ROC等。
(5) 模塊化的運行概念奠基了機器學習模型建立的設計流程。元運算容許這些過程自動優化,所以使用者不須要手動去適應每一個步驟和參數。優化運算包括自動參數優化、自動屬性設置優化、循環、控制結構、宏、斷點調試以及更多。
(6) 模型的快速成型和超越。從第一次探索分析到現成解決方案只需幾步。快速成型容許機器學習模型過程當中的關鍵決策能夠儘量早的實現。使用RapidMiner 可使你在短期內設計好一個原型,從這些原型中,優化這些過程引導你獲得解決方案。
(7) 使用Java 代碼,可經過GUI 模式或Java API 進行操做,也能夠用簡單腳本語言自動進行大規模進程操做。而且內部XML保證了標準化的格式來表示建模過程。
(8) RapidMiner與市面上主流的大數據分析平臺支持很是友好,譬如不一樣版本的CDH集成,包括同一平臺的不一樣版本的支持,不須要應對複雜的配置文件,所以可以方便應對大規模分佈式機器學習應用場景。
(9) RapidMiner有成熟的社區和擴展交易市場(marketplace),用戶能夠根據本身的須要,快速獲取不少定製化的功能。
KNIME是一個集數據集成、處理、分析和開發於一體的開源數據分析平臺,對經常使用的機器學習算法也提供了友好的支持,並在嚴格的軟件工程實踐中進行開發和利用。本文主要對KNIME 3.1 進行比較研究。
圖3:KNIME建模示意圖
KNIME(以KNIME 3.1爲例)具備如下特色:
(1) 可視化的工做平臺集成了數據訪問、數據轉換、數據探索和預測分析等經常使用的機器學習功能。
(2) 集成了數百個處理結點來進行數據輸入與輸出﹑預處理和清洗﹑建模﹑分析﹑數據挖掘以及製做各類互動的視圖(如散點圖﹑平行座標和其餘視圖)。
(3) 可集成全部的分析模版到衆所周知的WEKA 數據挖掘環境中,並有額外的插件模塊容許R-腳本運行,還提供了廣大統計例程庫接口。
(4) 基於Eclipse 平臺開發,而且經過其模塊化的API 可輕鬆進行擴展。由於KNIME在後臺可進行智能自動的數據緩存,同時最大限度地提升吞吐量性能,因此這種模塊化和可擴展性容許KNIME 在商業的生產環境以及教學和研究原型設置工做中獲得應用。
(5) 提供超過1000 個數據分析例程,不管是在本地或經過R和 WEKA均可以進行,如單元和多元統計、數據挖掘、時間系列、圖像處理、Web 分析、文本挖掘以及社會化媒體分析等。
(6) 機器學習建模工做流程不只能夠經過交互式用戶界面運行並且執行批處理模式,使數據分析過程能夠很容易地按期集成到本地工做運行的管理中去。
(7) KNIME提供了大量的行業應用模板和定製化化的算子,便於特定應用行業的數據分析,譬如生物醫藥行業。
(8)具備 HiLite 功能,容許用戶在節點結果中標記感興趣的記錄,並進一步展開後續探索。
明略可視化機器學習平臺DataInsight本質是一種MLAAS平臺,用戶無須在客戶端安裝平臺工具,經過瀏覽器便可進行拖拽,交互式數據探索,完成機器學習模型的訓練、部署和應用。DataInsight不只集成了Spark MLlib分佈式機器學習能力,還定製了高效的分佈式機器學習算法。
圖4:明略DataInsight建模示意圖
明略DataInsight平臺基於BS架構,DataInsight經過提供一體化、並行化的高效模型應用平臺,能幫助企業有效下降機器學習的應用曲線和落地成本。具備以下特色:
(1) 擴展性強。明略DataInsight平臺基於Hadoop和Spark的並行化平臺,計算能力隨着大數據平臺計算能力的擴展而擴展。其提供了多種數據預處理的並行化算法,以及大量並行運行於Spark之上的數據挖掘和機器學習算法。
(2) 模型工做流。使用工做流的概念表示整個建模過程,每一個建模步驟看做一個算子,使得整個建模過程造成一幅有向無環圖,建模過程將原始的輸入經過一系列算子組合獲得最終的業務結果。
(3) 交互式探索。明略DataInsight提供了交互式數據探索工具供用戶對數據進行實驗性的探索工做,幫助用戶實時的對數據進行探索和實驗。同時,明略DataInsight經過可視化的方法,提供了經常使用的數據統計和分析的圖表,供用戶可以直觀的從圖形中發掘數據背後的意義。
(4) 模型應用管理。提供模型應用的版本管理,可以方便的進行模型的維護和更新,提高工做效率。而且對模型的應用管理提供了用戶和角色的支持,方便權限控制。
(5) 模型即服務。DataInsight平臺經過Restful API向企業其餘生產系統提供服務,外部系統能夠經過Restful API實現模型的運行和更新等操做。
東軟數據科學平臺定位於企業級數據科學平臺,經過簡化複雜機器學習算法的使用成本,提升企業構建智能應用的能力和效率,幫助企業實現數據驅動的商業模式。產品組成以下:
圖5:東軟RealRec建模示意圖
東軟RealRec主要經過在機器學習算法和模型方面的能力建設,使企業可以快速構建智能應用,開展創新數據服務和業務。
主要具有以下特色:
(1) 特徵分析實現了多維分析和分佈統計,經過對數據進行過濾、去重、拆分、合併,實現數據可視化展示,並實現了數據的特徵抽取、管理和複用;
(2) 模型訓練實現了自動化的模型選擇,模型的交叉驗證和可視化展示,並提供全流程的引導, 訓練數據能夠是實時數據、批量數據或文件;
(3) 在模型最終部署應用時提供跨平臺REST接口、POJO導出/UDF導出,並實現了模型管理複用和任務調度管理;
(4) 機器學習經過提取原始數據的特徵,選擇合適的算法,最終實現模型的自動化選擇和導出。
本部分主要從不一樣維度對上述機器學習工具進行比較,譬如從算法支持程度、可視化功能、面向不一樣用戶羣學習難易度、對主流大數據平臺支持能力以及軟件成熟度等維度進行比較。
上述可視化機器學習工具對經常使用的機器學習算法都提供了支持,但具體對某一算法的支持程度則有所不一樣,譬如以支持向量機算法爲例:KNIME僅支持LibSVM,SparkLinear SVM,Rapid Miner能夠支持LibSVM,Linear SVM,Evolutionary SVM以及PSO SVM,以及Spark SVM,明略支持Spark SVM和LibSVM,而WEKA僅支持LibSVM。
各算法支持功能強弱可參考下表:
機器學習算法 |
WEKA |
RapidMiner |
KNIME |
明略 |
東軟RealRec |
支持向量機 |
中等 |
強 |
較強 |
中等 |
下一版本支持 |
決策樹 |
中等 |
強 |
強 |
中等 |
強 |
貝葉斯 |
中等 |
強 |
較強 |
中等 |
強 |
迴歸 |
中等 |
強 |
較強 |
中等 |
強 |
神經網絡 |
弱 |
較強 |
較強 |
弱 |
強 |
深度學習 |
不支持 |
很弱 |
很弱 |
不支持 |
強 |
K-Means |
中等 |
較強 |
中等 |
弱 |
強 |
說明:
ü 目前RAPID MINER正在集成JAVA深度學習開源項目DeepLearning4J,能夠支持深度學習建模,可是目前尚不成熟。
ü 目前WEKA不支持分佈式機器學習算法,其餘工具均支持分佈式的機器學習算法。其中RAPIDMINER和KNIME均經過軟件擴展集成Spark,經過Spark MLLIB的算法支持分佈式機器學習算法。明略DataInsight目標便是面向大數據的分析和建模。
軟件產品的使用容易程度相當重要,一款好的可視化工具應可以實現訓練數據的可視化探索、模型的可視化、模型訓練的可視化、模型驗證及應用的可視化,可以自帶多行業的模板和樣例,便於數據分析人員的快速上手,提高模型創建和訓練的效率。具體表如今數據的導入/處理、模型的構建、模型的易理解性等方面。
比較項目 |
WEKA |
RapidMiner |
KNIME |
明略 |
東軟RealRec |
數據抽取 |
只能經過數據文件、URL地址以及數據庫抽取收取,不支持其餘數據源數據抽取,功能單一。 |
支持各類格式文件、數據源的抽取,圖形化的抽取算子,並進行數據的交互式探索 |
也具有經常使用文件格式和數據源的抽取,但數據的交互式探索功能不方便 |
可以支持多個文件格式、數據庫抽取,對大數據平臺數據抽取能力強 |
支持文件上傳、HBase數據、HDFS數據、關係型數據庫數據,可對接大數據平臺 |
數據轉換 |
提供經常使用的數據過濾、歸一化等功能 |
數據的歸一化、降維和格式化等 |
各類數據格式化功能,數據融合、數據過濾等 |
提供經常使用的數據過濾、歸一化等功能 |
提供經常使用的數據過濾、歸一化、切分等功能 |
數據建模 |
提供簡潔的拖拽等可視化建模能力。 |
相似工做流的可視化建模,支持嵌套。 |
也提供工做流的可視化建模,可是設置選型多,比較複雜 |
也提供工做流的可視化建模,但功能還不完善,正在改善。 |
提供notebook(記事本)式的數據建模,以命令行的方式運行模型 |
模型驗證及評測結果展現 |
支持經常使用的圖表展現,可是圖表美觀性差 |
各類圖形的可視化展現,切換容易 |
各類常見圖形的展現 |
支持的圖表有限,目前正在改善。 |
支持經常使用的圖表展現,可是圖表美觀性通常 |
不一樣機器學習工具具備不一樣功能特色,有的靈活性強,有的功能簡潔,這些都會影響不一樣用戶羣的學習曲線以及工具使用的難易程度。咱們根據不用用戶羣知識結構特色以及上述工具產品的功能特色綜合分析比較,不一樣用戶羣掌握工具難易程度以下:
比較項目 |
WEKA |
RapidMiner |
KNIME |
明略 |
東軟RealRec |
開發人員 |
操做界面比較簡潔和直觀;工具是輕量級的,對系統資源消耗少,運行快捷;對於開發人員入門簡單,使用便捷 |
對運行的硬件資源要求比較高,運行速度不是很快;界面設計比較清晰直觀;對於開發人員入門也很是容易 |
工具操做界面基於eclipse開發,對於熟悉eclipse開發工具的研發人員比較簡單;因爲選項多、靈活性大,掌握難度大 |
徹底基於WEB的操做界面,界面風格簡潔直觀,對於開發人員入門簡單;因爲WEB版,運行於瀏覽器,對硬件資源需求小,操做便利 |
徹底基於WEB的操做界面,對開發人員入門簡單 |
專業數據分析人員 |
對於熟悉數據分析專業知識人員,工具使用簡單,操做便利 |
因爲界面比較直觀,對於專業數據分析人員比較簡單,門檻低 |
因爲界面靈活,配置也相對複雜,使用相對複雜,須要摸索 |
WEB操做界面比較簡單直觀,功能比較單一,用戶入門門檻不高 |
WEB操做界面比較簡單直觀,功能比較單一,用戶入門門檻不高 |
通常業務分析人員 |
界面描述均是專業術語,通常分析人員沒法輕鬆使用,學習週期長 |
界面雖然比較直觀,但還具備必定的專業性,須要專業指導 |
因爲功能提供了較多專業的配置項,用戶須要花費時間學習配置,學習週期比較長 |
界面雖然比較直觀,但還具備必定的專業性,須要專業指導 |
界面雖然比較直觀,但平臺定位於計算引擎,通常業務分析人員須要專業指導 |
爲了提高機器學習的效率以及數據分析的規模,當前主流的機器學習工具均提供了與大數據分析平臺的集成,但在兼容性方面存在比較大的差別,具體比較以下:
比較項目 |
WEKA |
RapidMiner |
KNIME |
明略 |
東軟RealRec |
大數據平臺的兼容性 |
目前不提供與大數據平臺的集成 |
支持主流的大數據平臺Clouddera和Hortonworks以及MapR, CDH 4.x和5.x, HDP 1.x和2.x, MapR 4.1, Hadoop 1.x和2.x等 |
支持主流的大數據平臺Clouddera和Hortonworks以及MapR,支持 CDH 5.x, HDP 2.1 和 2.2, MapR 4.1, Hadoop 2.4.0等 |
兼容性較差,主推本身的大數據平臺,目前也支持其餘的大數據平臺,但須要驗證。 |
支持大數據平臺Clouddera,支持Spark 1.6,自行定製的Tachyon 0.8 |
與大數據平臺集成難易度 |
目前不提供與大數據平臺的集成 |
集成快捷,提供配置模板,對已有大數據環境無侵入 |
配置相對複雜,對已有大數據環境無侵入 |
須要在已有大數據環境安裝相應軟件套件,有侵入性 |
配置相對複雜,對已有大數據環境無侵入 |
本節主要從軟件自身的穩定性、文檔的完整性、用戶羣、社區生態系統以及開源協議支持等五個方面對WEKA、RapidMiner、KNIME以及明略DataInsight進行對比,綜合評定各軟件整體成熟度。
比較項目 |
WEKA |
RapidMiner |
KNIME |
明略 |
東軟RealRec |
軟件穩定性 |
將近二十年的發展和優化歷史;功能穩定、擴展性強但 |
超過十五年的發展歷史,功能穩定而且全面、擴展性強。目前正在研發純WEB版的分析平臺 |
超過十年發展歷史,功能穩定全面、擴展性強,缺乏WEB版的分析平臺 |
發展歷史比較短,功能不夠全面,產品還處於發展中,不夠穩定 |
發展歷史比較短,定位於底層支撐平臺,產品還處於發展中 |
文檔完備性 |
是缺少規範的文檔列表 |
文檔規範而且齊全 |
文檔規範而且齊全 |
文檔不夠規範,用戶應用不方便 |
文檔規範,但不太齊全 |
用戶羣及應用領域分佈 |
在高校和研究機構,有着普遍的用戶羣體,用戶基數大。 |
產品有比較普遍的用戶羣體,成功應用於汽車、金融、保險等領域 |
國內用戶羣比較窄,用戶羣主要分佈在生命科學、政府、金融等領域 |
目前用戶羣體基數小,用戶主要分佈在電商和金融行業 |
目前用戶羣體基數小,用戶主要分佈在客服和金融行業 |
社區生態系統 |
因爲用戶羣基數大,社區發展比較成熟,文檔和手冊指南比較成熟,容易獲取社區幫助 |
社區發展比較成熟,擴展多,能夠獲取不少免費的視頻等學習資料,存在專業的論壇提供幫助和交流 |
社區規模比較豐富和規範,擴展多能夠獲取不少免費的視頻等學習資料,也有專門的論壇提供交流和指導 |
因爲是純商業軟件,目前沒有造成成熟的社區,難以獲取社區幫助,須要依賴廠商 |
因爲是純商業軟件,須要依賴廠商 |
開源協議 |
GPL,協議靈活,代碼徹底開放 |
單機版支持協議AGPL-3.0,協議靈活,代碼徹底開放 |
單機版支持協議GPL-V3,協議靈活,代碼徹底開放 |
商業軟件 |
商業軟件 |
總上,RapidMiner發展歷史久,功能穩定完備,用戶羣分佈廣、社區生態成熟,所以產品成熟度也最高。
WEKA是徹底免費的開源軟件,無須支付任何軟件費用,使用成本低;RapidMiner和KNIME單機版徹底開源,無需支付費用,可是分佈式模型訓練和處理組件以及面向特定應用領域的擴展組件均是商業版本,須要收費,license主要按照用戶數和使用期限收費,費用不菲;明略DataInsight和東軟RealRec是純商業軟件,成本比較昂貴。
基於上述六個層面的比較分析,咱們能夠看出RapidMiner在機器學習領域應是一個全面綜合的軟件工具,在算法和可視化效果方面都很突出,特別適用於不一樣數據的多方面分析和研究,適用於數據和業務分析人員。WEKA適合小規模的機器學習能力,譬如科研探索和機器學習入門人員等。KNIME比較接近RapidMiner,但因爲界面比較複雜,所以比較適合開發人員,尤爲是具有Eclipse開發經驗的人員。明略DataInsight具備較強的任務管理和模型管理能力,並提供角色管理,適用於工程領域的研發人員。東軟RealRec算法很是全面,適合複雜場景的分析和訓練,可是可視化建模能力弱,使用複雜,不建議通常業務人員使用。
通過上述的對比和分析,咱們發現這幾款工具具備相似的機器學習算法、可視化功能等,但從每個比較標準來看,各軟件之間又存在着較大差異。綜合上述的分析和比較結果,一款優秀的可視化機器學習工具應具有以下功能:
1. 首先,具有良好的可視化能力,包括可視化數據探索、可視化數據預處理、可視化建模、可視化驗證、可視化評估、可視化結果展現等。
2. 操做界面簡潔直觀,對分析組件進行模塊化,有效下降組件之間的數據格式的兼容性,讓數據分析變得敏捷化。
3. 對經常使用的機器學習算法都提供了友好支持,不只具有算法支持的深度,還能夠擴展支持同一種算法的不一樣實現,以應對不一樣分析領域。
4. 儘量面向更廣的用戶羣,譬如可以覆蓋通常業務分析人員、專業的數據分析人員或者技術開發人員,用戶學習成本均比較低或僅需簡單培訓。
5. 具有完善的社區生態系統,提供軟件工具使用過程當中所需幫助信息,此外,社區還可以提供特定領域分析的擴展或插件。
6. 可以和企業自身大數據分析環境無縫鏈接,對不一樣大數據系統及版本均提供了友好的支持,易於部署和管理。
7. 工具訓練的模型可以輕鬆的向生產環境遷移,且便於模型的運營和升級維護。
8. 最後,一款好的可視化機器學習工具還需在主流行業中獲得相對普遍的應用,具備較大的用戶羣,經歷過實踐檢驗。
參考文獻
[1] 楊振瑜,王效嶽,白如江。國外主要可視化數據挖掘開源軟件的比較分析研究。圖書館理論與實踐,2013 第五期。