zoukankan      html  css  js  c++  java
  • KNIME + Python = 数据分析+报表全流程

    Python 数据分析环境

    数据分析领域有很多可选方案,例如SPSS傻瓜式分析工具,SAS专业性商业分析工具,R和python这类需要代码编程类的工具。个人选择是python这类,包括pandas,numpy,matplotlib,sklearn,keras。基于jupyter或者zeppelin作为编程界面,可以用python开发出比较清爽的数据分析报告。

    总体来说,jupyter notebook编写的分析结果基本上可以满足要求,但是也有些弊端,例如无法做很好的presentation,虽然可以通过convert slides得到比较好的presentation胶片,但是无法展现直观的数据流和数据分析流程。

    理想的数据分析应该包括:清晰的数据流和数据分析流程;直观的数据分析结果报告。

    经过对多种开源方案的比较,我选择使用knime+python的方案,可以有以下的优点

    • 利用python和相关数据分析库的能力,对数据建模、分析、可视化,这块基于Anaconda;
    • 利用knime的可视化数据流和report design能力,对数据ETL、建模、分析、报告。

    knime + python

    anaconda建立数据分析环境

    一般需要使用到的库包括:pandas,seanborn,numpy,scipy,statsmodel,matplotlib,keras,TensorFlow。

    knime建立可视化数据流/report环境

    KNIME的发展始于2004年1月,由康斯坦茨大学的软件工程师团队作为专有产品。由Michael Berthold领导的原始开发团队来自硅谷的一家公司,为制药行业提供软件。最初的目标是创建一个模块化,高度可扩展和开放的数据处理平台,从而轻松集成不同的数据加载,处理,转换,分析和可视化探索模块,而不必关注任何特定的应用领域。该平台旨在成为一个协作和研究平台,也应作为各种其他数据分析项目的集成平台。

    Knime IDE基于eclipse开发,插件的安装和eclipse一样。我们需要结合knime和python做数据分析,需要安装以下插件:

    • 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尺寸太小。

    knime中report模块

    report模块基于birt,开发界面和BIRT一样。优点是这里能够将knime数据流中的Report节点数据/图片自动引入到report中的“Data set view”。在设计report的时候可以引入图片或者表格数据。

    数据分析流程

    BIRT报表

  • 相关阅读:
    Linux(Centos7)yum安装最新redis
    refresh table tablename ;MSCK REPAIR TABLE table_name;
    整个shuffle的流程图
    Vim简明教程
    centos vim 7.3 升级 + vim 简单配置文件
    Python——可变类型与不可变类型(即为什么函数默认参数要用元组而非列表)
    python——修饰符
    转——《将人性置之死地而后生》刘夙
    各学科领域入门书籍推荐
    python——关于Python Profilers性能分析器
  • 原文地址:https://www.cnblogs.com/luweiseu/p/8487225.html
Copyright © 2011-2022 走看看