數據分析領域有不少可選方案,例如SPSS傻瓜式分析工具,SAS專業性商業分析工具,R和python這類須要代碼編程類的工具。我的選擇是python這類,包括pandas,numpy,matplotlib,sklearn,keras。基於jupyter或者zeppelin做爲編程界面,能夠用python開發出比較清爽的數據分析報告。node
整體來講,jupyter notebook編寫的分析結果基本上能夠知足要求,可是也有些弊端,例如沒法作很好的presentation,雖然能夠經過convert slides獲得比較好的presentation膠片,可是沒法展示直觀的數據流和數據分析流程。python
理想的數據分析應該包括:清晰的數據流和數據分析流程;直觀的數據分析結果報告。編程
通過對多種開源方案的比較,我選擇使用knime+python的方案,能夠有如下的優勢api
通常須要使用到的庫包括:pandas,seanborn,numpy,scipy,statsmodel,matplotlib,keras,TensorFlow。eclipse
KNIME的發展始於2004年1月,由康斯坦茨大學的軟件工程師團隊做爲專有產品。由Michael Berthold領導的原始開發團隊來自硅谷的一家公司,爲製藥行業提供軟件。最初的目標是建立一個模塊化,高度可擴展和開放的數據處理平臺,從而輕鬆集成不一樣的數據加載,處理,轉換,分析和可視化探索模塊,而沒必要關注任何特定的應用領域。該平臺旨在成爲一個協做和研究平臺,也應做爲各類其餘數據分析項目的集成平臺。ide
Knime IDE基於eclipse開發,插件的安裝和eclipse同樣。咱們須要結合knime和python作數據分析,須要安裝如下插件:svg
Python Script node能夠處理前一個節點數據,數據名稱是input_table
,類型是pandas.DataFrame
。DataFrame的操做api就是pandans的api。數據處理完後將結果輸出,輸出的數據是output_table
. 舉個例子,選擇一個PythonScript node以後,右擊選擇Configure...,進入python代碼輸入框。模塊化
import pandas as pd df = input_table df = df[df['gender'] == 'M'] output_table = df
Python View節點對輸入數據作可視化,輸出圖片,輸入數據通用是input_table
,可視化可使用任意的python庫,首選固然是Matplotlib。輸出的圖片須要賦值給變量output_image
。舉個例子:工具
import matplotlib.pyplot as plt from io import BytesIO df = input_table df['score'].plot() # output the image buffer = BytesIO() plt.saveFig(buffer, format='svg') output_image = buffer.getvalue()
Python View節點輸出的圖片能夠做爲report的元素,藉助「Image to Report」節點能夠將圖片輸出,注意須要從新設置圖片大小,默認100x100尺寸過小。spa
report模塊基於birt,開發界面和BIRT同樣。優勢是這裏可以將knime數據流中的Report節點數據/圖片自動引入到report中的「Data set view」。在設計report的時候能夠引入圖片或者表格數據。