KNIME的介绍
- KNIME发音为:[naim](就是用“k”,就像“knife”一样)。
- 它由康斯坦茨大学的Michael Berthold小组开发。
- KNIME系统是基于Eclipse开发环境来精心开发的数据挖掘工具。无需安装,方便使用。KNIME也是用Java开发的,可以扩展使用Weka中的挖掘算法。
- KNIME采用的是类似数据流(data flow)的方式来建立分析挖掘流程。挖掘流程由一系列功能节点(node)组成,每个节点有输入/输出端口(port),用于接收数据或模型、导出结果。KNIME中每个节点都带有交通信号灯,用于指示该节点的状态(未连接、未配置、缺乏输入数据时为红灯;准备执行为黄灯;执行完毕后为绿灯)。
- 在KNIME中有个特色功能——HiLite,允许用户在节点结果中标记感兴趣的记录,并进一步展开后续探索。
相关案例资源连接地址:
http://download.csdn.net/download/m0_37213323/9905934
主要功能
1. 采用完全图型化的操作方式,以下为KNIME的主要操作界面:
2. 支持各类方式的数据载入,包括文件、数据库等
3. 支持各类数据处理方式,包括按列(如分拆、合并等)、按行(过滤、变形)、矩阵(转置)和PMML(字段投影、一对多、多对一、正态化、反正态化等)
4. 支持各类数据视图,如点图、直方图、饼图、分布图
5. 支持假设检验和回归方法
6. 支持决策树、贝叶斯、聚类、规则推导、神经网络等挖掘方法
7. 支持流程控制
优势
1. 提供完全图型化的操作方式,操作流程简便、结果产出直观;
2. 提供丰富的数据读取和加工操作,支持从数据库中获取数据;
3. 提供较为完备的数据挖掘方法;
不足之处
1. 正由于其主要是基于图型的操作,故难于与其它系统进行集成;
2. 对于统计模型的支持略显不足。
KNIME的按钮说明
窗口划分区域工作内容
1. KNIME Explorer 是项目资源管理
2. workflow coach 是社区推荐的工作流节点
3. node repository 节点存储仓库
4. favorite nodes 喜欢的节点
5. Outline 大纲
6. Node Description 节点说明窗口
执行
在下一步中,您可能希望执行该节点,即希望节点在数据上实际执行其任务。要实现这一点,右键单击该节点以打开上下文菜单并选择“执行”。您也可以从工具栏中选择相关按钮。该按钮看起来像上下文菜单项旁边的图标。
没有必要执行每个单个节点:如果执行连接但尚未执行的节点的最后一个节点,则所有前导节点将在执行最后一个节点之前执行。
执行全部
在编辑器上方的工具栏中,还有一个按钮来执行工作流上尚未执行的所有节点。
如果流程中的节点由于缺少先前节点中的信息而带有红色状态指示灯,则此功能也起作用。当前一个节点被执行并且具有红色状态灯的节点可以应用其设置时,它被执行以及其后继。
底层的工作流管理器也试图并行执行工作流的分支。
configure
当节点被拖动到工作流编辑器或连接时,通常会显示红色状态指示灯,指示需要配置,即必须打开该对话框。这可以通过双击节点或右键单击节点来打开上下文菜单来完成。上下文菜单的第一个条目是“配置”,打开对话框。如果选择了节点,您还可以从编辑器上方的工具栏中选择相关按钮。该按钮看起来像上下文菜单项旁边的图标。
执行并打开视图
节点上下文菜单还包含“执行和打开视图”选项。这将执行节点并立即打开视图。如果节点具有多个视图,则仅打开第一个视图。
打开视图
节点可以没有,一个或多个视图。每个视图在节点的上下文菜单中显示为条目。选择它以打开相关视图。在执行节点之前打开的视图在节点执行后立即更新。您可以多次打开节点的视图,例如,如果要比较散点图中的不同列。如果节点被重置,视图会自动重置。
打开出口视图
如果节点没有视图,但是对节点对数据的操作感兴趣,则可以检查数据。它在节点的出口可用。在上下文菜单的底部有一个节点的每个出口的条目。每个打开引用的端口视图。注意,端口视图不支持任何交互或hiliting。如果您希望hilite数据或看到hilited数据,您必须将外部端口连接到Interactive Table节点。
重启
您可以通过从上下文菜单中选择重置选项来重置节点。节点从执行状态(绿色状态指示灯)返回到配置状态(黄色状态指示灯)。如果选择了节点,您还可以从编辑器上方的工具栏中选择相关按钮。该按钮看起来像上下文菜单项旁边的图标。
取消
如果节点当前正在执行,则可以从工具栏中选择上下文菜单或相关按钮(与上下文菜单中相同的图标)中的“取消”选项来取消执行。
全部取消
工具栏还包含一个“全部取消”按钮,可以取消所有正在运行的节点的执行。
补充说明
- PMML(预测建模标记语言)用于表示预测模型。PMML是一种XML格式,其中可以在平台之间存储和交换模型。KNIME支持PMML模型的导出和导入。除了模型之外,还可以在PMML中描述预处理步骤,例如归一化,过滤,分类或类型转换
- 在KNIME中表数据的null是用缺失值来替代的,缺失值的符号为?
KNIME的例子
图片上自带注释所以就不文字描述了
14. K-means旨在将样本聚类成k个簇(cluster),具体的算法是:先随机选取k个类的质心点(centroid),这里的k需要事先给定;然后对于每一个样例i,计算得出i与k各类中距离中最近的类;将i放入该类后对于接下来的每一个类,又重新计算它的质心.
效果如下:
KNIME的注意事项
- 增加KNIME的Java堆空间
- 在KNIME安装目录中有一个名为knime.ini的文件(在Linux下可能是.knime.ini;对于 MacOS:右键单击KNIME.app,选择“显示包内容”,转到“/ Contents / Eclipse /”你应该找到一个Knime.ini)。打开文件,
- 找到条目-Xms1024m并将其更改为-Xms4g或更高
- 重启KNIME
- 节点描述”窗口在Linux上不起作用; 它显示错误“系统浏览器无法初始化,不显示节点描述”。
- KNIME使用SWT浏览器小部件来显示HTML内容。此小部件需要安装适当的Web浏览器。在Linux下通常使用WebKit。然而,最近的Linux发行版(例如Ubuntu 14.04)附带了不兼容的WebKit版本。如果KNIME检测到不兼容的版本,它将完全禁用它,因为否则KNIME可能会崩溃。
- 这个问题有几种解决方案
- 对于KNIME 3.x使用GTK3(见FAQ),您需要安装GTK3的WebKit:
○ 在Ubuntu下安装libwebkitgtk-3.0-0(sudo apt-get install libwebkitgtk-3.0-0)
○ 在Fedora / CentOS / RHEL下安装webkitgtk(yum install webkitgtk)
○ 在openSUSE下安装webkitgtk3(zypper install webkitgtk3) - 对于 禁用 GTK3的KNIME 3.x(见 FAQ )和 KNIME 2.10 至 2.12:某些发行版提供了可以手动安装的较旧版本的软件包:
○ 在Ubuntu下安装libwebkitgtk-1.0-0(sudo apt-get install libwebkitgtk-1.0-0)
○ 在Fedora / CentOS / RHEL下安装webkitgtk(yum install webkitgtk)
○ 在openSUSE下安装libwebkitgtk-1_0-0(zypper install libwebkitgtk-1_0-0) - 对于KNIME 2.9及更低版本或上述解决方案不起作用:KNIME更新站点包含一个名为KNIME XULRunner二进制文件的功能。如果安装,KNIME将使用本地XULRunner而不是WebKit。为了安装此功能,您必须在安装对话框中禁用“按类别分组”选项,并搜索该功能。
- 有没有办法在批处理模式下运行KNIME,即仅在命令行上运行,没有图形用户界面?
- 有一个命令行选项允许用户以批处理模式运行KNIME。要查看可能参数的列表,请在命令提示符(对于Linux)执行以下行:
knime -nosplash -application org.knime.product.KNIME_BATCH_APPLICATION
- 在Mac上,可执行文件不直接位于KNIME应用程序目录中,而是位于应用程序包的子文件夹中:
knime.app/Contents/MacOS/knime -nosplash -application org.knime.product.KNIME_BATCH_APPLICATION
- 在Windows系统上,您需要添加两个其他选项以启用系统消息(默认情况下,任何消息到System.out被抑制):
knime.exe -consoleLog -noexit -nosplash -application org.knime.product.KNIME_BATCH_APPLICATION
- 选项:
- -consoleLog
- 导致打开包含日志消息的新窗口,并在执行完成后保持窗口打开状态。您将需要手动关闭窗口,并从Java进程生成错误消息,您可以安全地忽略该消息。(如果您碰巧发现如何避免或简化此程序,请告诉我们。)
- –launcher.suppressErrors
- 如果指定了这一点,那么如果遇到问题,启动器将不会显示带有错误的消息框。这允许在无人值守测试或构建中使用启动器,而不会在出现错误时阻止。
- -nosave
-如果指定了这一点,则在执行完成后不会保存工作流。 - -preferences = file.epf
- 包含eclipse / knime首选项的文件的路径。
- -restat
- 在执行之前重置工作流程。
如果您没有选择任何选项,将列出所有可用的选项。
- 为了运行包含在工作区目录中的名为“Knime_project”的工作流,请执行一行:
knime -nosplash -application org.knime.product.KNIME_BATCH_APPLICATION -workflowDir="workspace/Knime_project"
- 为了运行一个工作流程,名称“Knime_project.zip”导出为.zip文件,可以一行执行:
knime -nosplash -application org.knime.product.KNIME_BATCH_APPLICATION -workflowFile="PATH_TO_FILE/Knime_project.zip"
- 还可以通过工作流变量来更改工作流的配置。如果为工作流定义了一个变量,则可以使用逗号分隔的三元组通过引用它以批处理方式使用变量来指定名称,值和类型,如下所示:
-workflow.variable = my_integer,5,INT
强制将缓存任何数据写入到硬盘中交互
该框架对于单个节点的内存使用没有绝对的控制,尽管它可以控制要保存在主内存中的每个节点输出中的数据量。可以在“常规节点设置”选项卡的节点对话框中控制此内存策略。有三种不同的策略:第一种(“全部保存在内存中”)强制KNIME将所有数据都留在主存储器中,第二个选项(“将表写入光盘”)将所有数据写入磁盘立即,第三个(“只保留内存中的小表”)是一种启发式,可以根据数据大小在前两个项之间自动切换。这些选项中的每一个都有利弊,例如保持内存中的所有数据可以快速迭代此数据,但会增加内存使用量。
“只保留内存中的小表”选项是默认值,特别感兴趣。它使用表中包含的单元格数的阈值(即行计数乘以列计数)来决定是否将数据保存在内存或磁盘上。此阈值默认为100 000个单元格。如果在您的设置中不合适(例如因为您的单元格通常是大字符串),则可以更改默认值。这可以使用作为命令行参数或位于安装目录中的knime.ini文件的一部分传递的java属性来完成。(注意:由于任何命令行参数指示knime(更准确地说是底层eclipse)忽略配置文件中的所有条目,所以更改配置文件比其他命令行参数更为优先。
在knime.ini文件中的-vmargs行之后添加以下行以在内存中保留最多1000个单元格(您可以选择不同的值,即使为0,在这种情况下,它总是与磁盘交换):
-Dorg.knime.container.cellsinmemory = 1000
您可以通过查看日志文件或检查在将鼠标悬停在任何节点中的“只保留内存中的小表”选项时显示的工具提示来验证此设置是否已被选中。