本文将深入探讨开源软件KNIME分析平台中的组件功能,通过客户细分的例子,展示KNIME分析平台的通用功能。文章将详细解释组件是什么、它们的功能以及为什么它们是有用的,并展示如何在几个步骤中创建和设置自己的组件。
组件与元节点不应混淆。乍一看,它们可能看起来相似,因为它们都包含一组节点。然而,元节点的唯一目的是通过折叠逻辑节点组来视觉上改善工作流,这在与同事共享工作流时特别有帮助。而组件则具有复杂的特性,使它们成为KNIME分析平台中非常强大的功能。它们封装了功能,甚至是复杂的功能,可以随时在其他工作流中重用。
首先,什么是交互视图?KNIME分析平台中有节点——视图节点、小部件节点和交互式小部件节点——用于可视化数据,例如作为图表或图形。这些节点创建的图表和图形可以通过交互视图观察。可以通过右键单击节点并选择交互视图来访问它(图1)。
以散点图节点为例,会弹出一个单独的窗口显示散点图,可以在其中进行例如放大和缩小、更改x轴和y轴上显示的属性或重命名图表及其轴等操作。
一旦组件包含具有交互视图的节点,这个交互视图就成为组件的交互视图的一部分,并且在运行在KNIME服务器上时可以从Web浏览器访问。元节点则没有这个功能(图2)。
通常,KNIME分析平台中的节点需要配置(或至少有配置节点的选项)。组件也可以有配置窗口。这不是必需的,但可以选择为组件创建一个配置窗口。可以在组件内放置配置节点,这些节点为组件启用配置窗口。这意味着可以在不更改组件内节点的设置的情况下更改组件的参数。图3显示了优化的k均值(轮廓系数)组件的配置对话框,已经在之前的文章中介绍过,并且可以通过KNIME中心访问。它与KNIME节点的配置窗口相似。元节点不能配置。
可能会问自己:什么是流变量?流变量是可以是任何数据类型的参数(例如,字符串、整数等)。它们用于自动更新节点的特定设置。例如,如果需要始终根据当前日期过滤数据集,请使用流变量。可以在每次工作流执行时用当前日期更新的数据类型为日期和时间的流变量可以用来覆盖过滤器节点的设置。可以在节点库的“工作流控制”类别下找到各种流变量节点(见图4)。
通常,流变量会自动传递给下游节点。当折叠一些节点到元节点时,这也适用。对于组件来说,情况有所不同。在组件内创建的流变量保留在组件内——除非特别希望它们从外部访问。在这种情况下,双击组件输出并移动相应的变量到包含面板(图5)。必须在组件输入节点中做同样的事情,以允许外部流变量进入组件。
要了解更多关于流变量和工作流控制的信息,请查看KNIME文档。
最后一点——组件可以重用和与他人共享。组件模板可以存储在某个地方,并通过拖放组件模板到工作流编辑器来创建链接实例。然后,组件可以像任何其他KNIME节点一样使用。每次打开工作流时,都会进行检查,看组件模板是否有任何更新。
要存储组件模板,需要右键单击组件并选择组件>>共享…,然后弹出一个窗口询问组件模板的目的地。有三个可能的目的地:
本地工作区选项允许将组件模板保存到本地工作区,这使得它只对来说是可访问的,以便于进一步使用。这比简单地复制粘贴组件要好,因为组件更新会自动传输到所有链接的实例。
可以将组件模板保存到KNIME中心的私有空间或公共空间。通过将其上传到公共空间,其他KNIME用户可以创建到组件的链接实例。无论哪种方式,都可以控制组件模板,通过登录到KNIME中心账户。这使得它独立于本地安装。
第三个选项是通过KNIME服务器共享组件。在这种情况下,将能够从任何连接的KNIME服务器客户端访问它。
现在,让构建一个组件,它将工作流的一些功能捆绑在一起,并共享它,使其能够在其他工作流中重用。
选择想要在组件内的所有节点。然后右键单击并选择创建组件…(图6)。在下一步中,会被要求给组件一个有意义的名字。
如所见,创建组件并不复杂。然而,重要的是适当地设置组件。
可以通过右键单击组件然后选择组件>>设置…来访问设置组件向导(图7)。在这里,可以重命名组件,添加或删除输入和输出端口,并更改输入和输出端口的顺序。让为聚类模型添加两个数据输出端口和一个PMML输出端口。
可以从组件内部访问描述面板(图8)。Ctrl双击打开组件。然后描述面板位于KNIME工作台的右侧,并且默认激活。如果看不到描述面板,通过点击顶部菜单中的视图>>描述来激活它。在这里,可以添加描述、图标以及组件的输入和输出端口的描述。
如上所述,组件可以通过配置窗口进行配置。要创建这样的配置窗口,使用配置节点,它们位于节点库的“工作流抽象”类别下(图9)。
让通过一个例子来演示这是如何工作的。k均值聚类算法的一个非常重要的参数是k——聚类的数量。从组件配置窗口中调整k是有意义的,而不需要更改组件内k均值节点的设置。使用整数配置节点来实现这一点。在节点的配置窗口中(图10),可以标记和描述选项,给变量一个名字,并且可以定义最小值和最大值以及默认值。
此外,希望组件能够泛化到不同的输入数据。根据数据的不同,并不总是可行地包括所有属性进行聚类,因为有些属性不会影响聚类(例如,为每个客户分配ID的列)并且k均值聚类算法通常不能处理非数值数据。因此,在组件的配置对话框中包含一个包含排除面板将是有帮助的。使用列过滤器配置节点(图11)可以指定允许的输入类型,或者需要的列的最小数量。
添加这两个配置节点后,得到了组件的以下配置窗口。
组件的复合视图包含组件的所有交互视图。除了在组件内放置一个具有交互视图的节点之外,不需要做其他任何事情。在这个例子中,散点图节点被放置在组件内,其视图可以在组件复合视图成功执行后看到。继续——试试看!
注意:复合视图的布局可以自定义,这在想要创建交互式仪表板时变得重要。但这是另一个话题…让首先完成这篇文章关于组件的内容,然后再处理新的话题。
组件是KNIME分析平台的强大功能。确实,如果需要的节点缺失,可以自己构建它。如果不能编码,可以通过组件创建新节点。组件是元节点的自然演变。