技术报告(Knime: The Konstanz Information Miner)
摘要---knime是一个能用来很简单的虚拟装配和交互执行数据管道的标准的环境
Knime被设计成为一个教学,研究以及合作的平台,在这里你可以很容易的集成新的算法,数据操纵或者是可视化的方法比如一个新的模块或是节点。在这本白皮书我们将介绍有关设计方面的基础构架以及怎样将新节点插入的简单过程。
第一 概述
在过去的几年里,人们对标准的数据分析环境的迫切需求已经达到前所未有的程度。
为了充分利用大量不同种类的数据分析方法,这样一个环境是必须的—--能够简单而直观的
使用,允许对分析进行快速和交互式的变换,用户可以可视化的搜索结果。
为了应付这些挑战,数据流水线操作环境是再合适不过一种模型。
它允许用户通过标准的组建模块可视化地组装和修改数据分析流,同时提供一种直观,图示
的方法来记载操作日记。
Knime就能提供这样的一个环境。
图1展示的是一个例子的数据分析流截图
在中间,一个数据流正从三个源节点读入同时在多处进行处理,也跟分析流相平行,包括预
eclipse如何设置为中文处理,建模,以及可视化节点。在这种类繁多的节点中,你可以选择数据源,数据处理步骤,模型搭建算法,可视化技术甚至是输入输出模型工具,然后将它拖到工作区,可以让它和其他节点连接起来。让所有操作实现图形交互的能力创建了检索你手中的数据集功能强大的环境Knime是用Java编写的而他的图形作业编辑区是一个类似Eclipse插件程序的工具。
扩充是很容易的,通过打开API和数据抽象框架,把正确定义的新节点快速加入就可以了。
在这本白皮书里我们会描述一些有关Knime内核的细节。更多信息你可以查询。
第二部分 构架
Knime的构架在设计之初就有三个主要的原则:
• 可视化,交互式构架:数据流应该通过简单的拖放各种处理单元来组合。标准的应用程序
能被设计通过单个的数据管道。
• 模块化:处理单元和数据容器不应该相互依靠,以便分布式计算和不同算法的独立开发的
实现更简单。数据类型被封装,也就是说没有数据类型被重定义,新的数据类型能够伴随着
明。类型描述传递器和比较器被很容易的添加。新的数据类型和已经存在的数据类型被同时声
• 易扩展性:它应该能很容易的添加新的处理节点或者是窗体,同时通过简单的插入和演示
方法来对他们进行分布而不需通过复杂的安装/卸载步骤。为了达到这个目的,管道节点由
数据分析处理组成,通过边来连接各节点传输数据或者是模型。每一个节点处理到达的数据
或者模型然后把处理的结果传递到输出端口。
图2处理结构图示
处理的类型从简单的数据操作(如数据清洗,数据合并)到复杂的数据统计学功能(如平均
数的计算,标准误差,用线性回归实现交互式的数据模型计算操作/聚类/决策树/神经网络)。
另外,大部分模型节点允许交互式的检索处理结果。下面我们将简单的描述有关数据节点和
数据作业管理核心内容,以及怎么样实现可视化交互式对话。
A.数据结构
节点之间所有的数据流都被打包成一个叫数据目录的类,它把元信息和数据容器类型以及真
实的数据联系起来。这种数据能够被反复的存取,比如数组。每一行包含一个特殊的标志位(或者是关键字)和具体的一串保存着真实数据的元数据避免通过行号或者索引号来获取入口的原因是可预测性,这就需要能够处理大量的数据同时也因此不需要保存每一行来获得快速,随机的访问。
图3 主要的基础数据结构UML图示
B.节点
节点是Knime中最主要的处理单元和经常用来在工作区组装一个可视化的节点,节点包类
的功能性和利用用户定义的节点模型执行,如果合适的话可能是一个数据对话框,一个或者
多个数据窗体例子
如果用户由设定的需求对话框和窗体才会生效。下面图示展示了最常见的模型—视图—控制
板样板。例外,为了实现输入输出,每一个节点都有有输入输出端口,它们能用来传输数据
或是模型。
图4 结构的UML图示
C.工作流程管理
Knime的工作流程连接各节点的必需或者是正式的曲线图,一个有向循环图。作业流程管理
器允许插入新的节点,同时也允许在两个节点之间添加有向边。同时它也能保存节点的状态
轨迹(如配置,执行),如果需要也能够用以返回一组可执行节点。
这样的环境构架能够自由的将工作量分给几个并行的线程,在未来甚至可以是分布式集中服
务器。正是因为有了这基础的图形结构,工作流程管理器才能够满足所有节点按用户在实际
需求中的希望的路径执行的需要。
D.可视化和交互式的便捷
每一个节点都有一系列实物与之相对应。
第三部分 库
Knime能够提供种类繁多的饿节点,在这些节点当中有的用于各种数据输入输出,处理,转
换,也有用于数据挖掘,机器学习以及可视化组件。
数据输入输出:一般的文件阅读器,ARFF和Hitlist文件阅读器,数据库连接器,CSV,Hitlist
and ARFF 写入器
数据操作:数据行列过滤,数据分割和取样,随机拖放或是排列,数据连接与合并。
数据转换:流失数据值代替器,模型转换器,存储箱,抽象值发生器小堆,规则管理挖掘。
数据挖掘算法:聚类(K-方法,sota, 数据模糊 c-方法),决策树,(模糊)规则导向,回归,
机器学习:神经网络(RBF和MLP),支持向量机,贝叶斯网络和贝叶斯分类器
数据统计:通过集成的R
可视化:离散点,柱状图,平行坐标,多面缩放比例,规则策划者,直线和月饼图
微型化:描述节点(?:表示需要用外部的库或者是工具)
第四部分 knime的外延
Knime已经包括了用新的插件程序合并已经存在的数据分析工具,例如Weka,数据统计工
具箱R,以及JFREEChart。一般情况下总是直接创建一个包给外部工具,而不必对这些进
行修改而只是执行它们自己。添加新节点,也即是添加新的操作到Knime其实是很容易的。为了做到这一点我们需要对以下三个抽象类进行扩充:
节点模型类:这个类用来承担主要的计算。它需要编写三种主要的方法:配置(configure()), 执行(execute()), 重启(reset())第一个用来把元信息输入表格然后产生新的具体输出。执行
函数用来实际的处理数据或模型的输出。最后的重启用来丢弃所有的临时结果。
节点对话框类:这个类用来具体化对话框,这能让用户调整自己的设置从而影响节点的执行。
DefaultDialogComponent对象的一个标准设置能用来非常快速的创建对话框,而且只用简单的几个标准设置。
节点图示类:这个类能被重新编写多次以实现在一个基础模型上的不同图示表示。每一个图示都通过HiliteHander被自动注册,同时发送事件当其他图示已经被标识出来,利用启动事件 另外对于这三个模型,对话框和图示类编程者需要提供一个节点库,创建新的实例。这个
库也提供名字和其他细节比如可用图示的编码或缺失标志,或是对话框标志。一个以Eclipse为基础的开发环境允须快速的产生所需类的来创建一个新的节点。
第五部分 可扩展的空间
Knime有待进一步扩展。下面介绍了当下一些比较活跃的扩展开发方向。
A.元节点
将一些小的工作流程压缩到一个集成节点的能力将使我们能够指派专门的服务器给这些小的数据流,把它作为一个重定义的模型输出给其他用户同时如果需要也允许我们创建一个包
来重复执行,比如cross-validation,bagging and boosting, ensemble learning 等等最初的原型看起工作效果很好,我们同样希望将这一特点集成在将来的版本里、处理网状工作流程的功能也将让用户能够可视化的设计更加大,更加复杂的工作流程。
B.分布式处理
由于这标准的构架让已定义的具体节点在不同的机器上执行变得很容易。但是为了提高和多
处理机机器的兼容性,同步共享存储变得越来越重要。Knime将会提供一个相应的构架来实现并行数据处理以及在聚类和网格之上的分布式操作。
C.化学和生物信息学
当下很多羡慕都针对于生命科学应用领域。节点用来处理基因表达和高吞吐量,高容量细胞
化学分析图都在研究开发。
D.网络服务
实验性的节点被设计用来获得化学模型的数据估算。Knime本身也能够被看成是一个提供网络服务的潜在服务器,允许外部用户执行重定义的工作流程。
我们要感谢许多Konstanz University的学生们的大量反馈信息以及bug报告.我们特别要感谢Kilian Thiel &Simona Pintilie在Sota resp.平行坐标现实方面所付出的努力.
参考资料
References
[1] Eclipse Foundation, Eclipse 3.1 Documentation,
[2] Ian H. Witten and Eibe Frank, Data Mining: Practical machine
learning tools and techniques, Morgan Kaufmann, San Francisco,
2005.
[3] R Development Core Team, R: A language and environment for
statistical computing, R Foundation for Statistical Computing,
Vienna, Austria, 2005,
[4] David Gilbert, JFreeChart Developer Guide, Ob-
ject Refinery Limited, Berkeley, California, 2005,
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论