備忘--簡單比較SPSS、RapidMiner、KNIME以及Kettle四款數據分析工具


SPSS、RapidMiner、KNIME以及Kettle四款工具都可以用來進行數據分析,只是彼此有各自的側重點和有劣勢。它們都可以逐步的定義數據分析過程,也同樣都可以對數據進行ETL處理。筆者從自己關心的角度簡單對比以上四款數據分析工具。

       SPSS不用多說,一款成功的商業數據分析軟件,涵蓋了統計分析、數據挖掘分析等各種數據分析方法。界面簡單易用,分析過程定義時非常直觀方便。因為,沒有源碼,無從知道其過程的調度機制。

       RapidMiner一款出色的開源數據分析工具。有非常豐富的數據分析算法。過程定義界面也簡單易用,幫助文檔也很全面。過程定義時的每一步操作都有端口的概念,不同的端口可以接入和輸出不同意義的數據,但數據的結構是一樣的,這意味着可以將任意兩個端口進行連接,只是有時無法得到正確的結論。粗看了下RapidMiner的源碼,發現其整個過程是單線程調用的。這樣的調用方式,在處理較大數據集時可能會有一定的影響。其過程定義文件是用xml語言進行描述的,格式很工整,體現了前期良好的設計,唯一不足的是,將調試用的斷點也設計進了過程定義文件當中。

       KNIME也是一款出色的開源數據分析工具,但其使用起來不是很好上手。其每一步操作與RapidMiner一樣,也帶有端口的概念。但是其端口間的連接關系有嚴格的約定。就是一個操作的輸出端口只能連其它固定幾種操作的輸入端口,否則你是無法將這兩個操作建立前后執行順序的。從一定意義上講,這樣的約束可以幫助人們減少定義過程中的錯誤。單就程序實現講,其復雜度也是提升了的。但對於筆者這樣的使用者來說,怎么都創建不了一個分析過程,(主要是用的不熟,總違反端口連接約束)頓時失去大半興趣,沒有對其進行再進一步的研究了。

       Kettle最早的定位是一個ETL工具,它有非常豐富的數據處理操作,后面的版本中也加入了部分數據分析功能。其過程定義界面也非常簡單直觀,與SPSS一樣,操作都沒有端口的概念。操作間的關系是建立在操作與操作之上的。但其設計中,正因為沒有端口概念的出現,當其進行錯誤信息的處理流程時,我們看其過程定義生成的xml文件會發現,錯誤流定義在XML文件中加入的很不規整,是以補丁的方式加入的,影響了系統整體設計的完整性與美觀度。不過,其可以對錯誤流進行處理的概念是這幾款產品中獨有的,還是要特別表揚一下。另外,通過Kettle的源代碼我們可以知道,其調度是多線程並發進行的。即讀數據操作每讀到一定的數據就傳給后面的處理操作,然后繼續讀數據。在數據很大的情況下,有可能是讀操作還在繼續讀數據,而早期讀出的數據在處理完后,都在向外寫出數據了。Kettle的調用機制更利於對較大數據的分析處理,占用的內存相對會較少,多線程並發的處理速度相對也會比較高。

       以上四款工具都是單機版工具,都不太適用於對海量數據的分析處理。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM