最近探索数据挖掘工具在业务场景下的应用,针对KNIME这一数据挖掘工具进行了试用。如图所示为KNIME工具的几大主要模块,每个模块下根据不同的功能设有数量巨大的节点(Node),可以通过拖动每个Node到Workflow中实现搭建自己的数据分析流程。图中标红的部分为业务分析中可能会主要用到的功能,下面会顺着数据分析的整体流程浅谈KNIME作为数据分析工具的使用感受,以及对比其他常用工具的优缺点,以供参考。
1.数据导入(IO/DB模块)
常用节点
Excel reader,CSV reader,MySQL conneter,DB table collecter,DB Reader
数据处理方法
* 支持多种数据源,在IO模块可以将excel/csv格式直接读入,在DB模块中提供多种与数据库连接的方式。
* 对于主要来源为数据库的业务数据,可以选择直接连接数据库后,进行数据处理,也可以先对表进行处理后再读入KNIME(把计算过程放在数据库中,不影响速度)。前者适合数据条数较少的表,后者适合数据量大,划分维度多的表。
* DB模块中还专门安排了Operation的功能节点,对于数据库操作水平有限的情况下是很好的选择。
可替换的工具/方法
MySQL中利用SQL语句进行操作后导出excel表格再导入其他分析工具进行分析。
优点
连接数据库后的处理方式依然丰富,可以满足多种情况需要。比如当涉及到的表格较多,SQL语句较复杂时,KNIME可以将表分别读入,分别执行SQL在进行组合。数据读入后可以无缝进入下一步数据处理,无需切换工具。
缺点
无明显缺点,相比其他工具KNIME的数据接入功能十分完善,也能够完成多种不同类型的数据导入,共同分析。
2.数据操作(Manipulation模块)
常用节点
* Column-分数据桶、数据类型的转换、命名、函数、字符串操作、计算、筛选、Groupby、join、merge等
* Row-数据筛选、插入行、数据转换等
* Table-矩阵转置之类
* PMML(预测建模标记语言)用于表示预测模型。PMML是一种XML格式,其中可以在平台之间存储和交换模型。暂未使用。
数据处理方法
数据操作部分的节点种类繁多且操作简便,根据实际业务需求对表格进行各种变换、筛选、分组处理。
可替换的工具/方法
* 在SQL中完成部分数据处理工作
* 已经导出数据库的excel数据(或其他)在excel环境内处理
* 将数据放在python或R中利用数据分析包进行数据清洗和处理
优点
* 图形化操作方式,数据操作思路清晰
* 数据操作节点较为丰富
* 每个数据操作后的数据情况可以浏览,并可在表格中观察到数据的基本情况
* 节点内数据操作的设置简便,基本都是按钮操作,不需要写代码
* 数据操作结束后可以根据分析的内容选择继续在KNIME内分析,也可以将数据导出到其他数据分析工具
缺点
正是由于按钮操作,也对数据操作中的字段选择、数据处理方式等存在限制。
3.可视化(View模块)
常用节点
* Javascript-bar chart、box plot、heatmap、histogram、pie chart、scatter plot、stackt area plot等
* property-color/size/shape manager等图形设置节点
* Local-bar chart、box plot、heatmap、histogram、pie chart、scatter plot、stackt area plot等,部分图形有可交互选项,即生成图形后可以替换属性。方便观察数据情况
数据处理方法
根据数据特点选择合适的图形,进入节点设置,选择需要可视化的属性。如果是有交互选项的图形,可以在生成的图形预览中对字段进行修改。
可替换的工具/方法
数据的可视化可以在多种工具中完成,比如在tableau中可以进行数据交互操作,定义新的计算字段,并通过拖拽等方式快速生成美观的图形;python中的matplotlib及plotly等模块以及R中的ggplot也可以进行可视化,但是设置过程较麻烦。对于逻辑比较简单的图形也可以直接用excel生成。
优点
* KNIME最方便的一点就是可以在前序流程下直接进入数据可视化的步骤,不需要进行数据迁移
* 一些带有交互选项的图形可完成探索性分析的前序工作
* 可以与python等其他数据分析工具集成,只需安装Extension的模块就可以调用python中的各种包完成数据可视化(目前用的不是很顺利)
缺点
* 图形不美观,对于图例、颜色、坐标轴的设置都比较麻烦
* 对于双轴等较为复杂的图形仅依靠KNIME本身(非拓展功能)基本无法实现
* 虽然部分图形有交互选项,但相比tableau对于探索性数据分析的强大功能,KNIME在出图时的实用性比较差(但是如果确定了指标计算方法,设置好流程之后可能效果就大不一样)
4.数据挖掘(Analysis模块)
主要节点
主要用于统计和预测,目前仅使用过Kmeans和decision tree这两个节点。
数据操作方法
确定分析思路后根据整理好的数据格式直接在节点中进行设置,完成模型的运行。
可替换的工具/方法
KNIME这部分的功能基本上只能用python和R的相关package进行替换。
优点
操作简便,从分析,使用模型,到最后结果的可视化展示可以无缝完成,也可以与manipulation和View模块反复叠加使用。
缺点
暂未有结论。
总结:
在一个星期的试用过程中发现,KNIME可以帮助数据分析思路规划,在思考分析维度的过程中搭建出的workflow可以多次应用,只需要对指标进行设置。此外在数据库连接和数据筛选阶段,可以很好的替代直接在数据库中进行数据操作,多种接入数据的方法也更加灵活。数据处理后可以直接在KNIME中进行可视化,也*可以将数据导出*后在其他工具进行处理。但是数据可视化方面感受不是很方便,有待继续探索更多功能。