KNIME + Python = 數據分析+報表全流程

Python 數據分析環境

數據分析領域有不少可選方案,例如SPSS傻瓜式分析工具,SAS專業性商業分析工具,R和python這類須要代碼編程類的工具。我的選擇是python這類,包括pandas,numpy,matplotlib,sklearn,keras。基於jupyter或者zeppelin做爲編程界面,能夠用python開發出比較清爽的數據分析報告。node

整體來講,jupyter notebook編寫的分析結果基本上能夠知足要求,可是也有些弊端,例如沒法作很好的presentation,雖然能夠經過convert slides獲得比較好的presentation膠片,可是沒法展示直觀的數據流和數據分析流程。python

理想的數據分析應該包括:清晰的數據流和數據分析流程;直觀的數據分析結果報告。編程

通過對多種開源方案的比較,我選擇使用knime+python的方案,能夠有如下的優勢api

  • 利用python和相關數據分析庫的能力,對數據建模、分析、可視化,這塊基於Anaconda;
  • 利用knime的可視化數據流和report design能力,對數據ETL、建模、分析、報告。

knime + python

anaconda創建數據分析環境

通常須要使用到的庫包括:pandas,seanborn,numpy,scipy,statsmodel,matplotlib,keras,TensorFlow。eclipse

knime創建可視化數據流/report環境

KNIME的發展始於2004年1月,由康斯坦茨大學的軟件工程師團隊做爲專有產品。由Michael Berthold領導的原始開發團隊來自硅谷的一家公司,爲製藥行業提供軟件。最初的目標是建立一個模塊化,高度可擴展和開放的數據處理平臺,從而輕鬆集成不一樣的數據加載,處理,轉換,分析和可視化探索模塊,而沒必要關注任何特定的應用領域。該平臺旨在成爲一個協做和研究平臺,也應做爲各類其餘數據分析項目的集成平臺。ide

Knime IDE基於eclipse開發,插件的安裝和eclipse同樣。咱們須要結合knime和python作數據分析,須要安裝如下插件:svg

  • KNIME Python Integration,安裝後可使用‘Python Script’和‘Python View’ node
  • KNIME Report Designer

knime 中「Python Script」 node

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

knime中「Python View」 node

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()

knime中「Image to Report」 node

Python View節點輸出的圖片能夠做爲report的元素,藉助「Image to Report」節點能夠將圖片輸出,注意須要從新設置圖片大小,默認100x100尺寸過小。spa

knime中report模塊

report模塊基於birt,開發界面和BIRT同樣。優勢是這裏可以將knime數據流中的Report節點數據/圖片自動引入到report中的「Data set view」。在設計report的時候能夠引入圖片或者表格數據。

數據分析流程

BIRT報表

相關文章
相關標籤/搜索