类别

版本

您正在查看9.2 -版本的RapidMiner开发人员文档点击这里查看最新版本

如何创建自定义模板

本文将指导您:

  • 设计一个新的模板流程
  • 将模板与扩展绑定

设计模板

模板是自包含的文件,可以通过扩展分发,也可以从本地文件系统加载。虽然文件格式很简单,但遵循下面描述的结构是很重要的。

文件格式

模板是ZIP归档文件,使用.template文件扩展名,至少包含三个文件:

my_template。模板├── icon.png ├── My Template.rmp └── template.properties

template.properties文件定义模板的名称并包含简短的描述。必须编码为iso - 8859 - 1-特别是,unicode编码很可能不起作用。对于上面的例子,文件的内容可能是这样的:

Template .name=我的模板。short_description=这是我的定制模板。

模板必须只包含一个RapidMiner进程(* .rmp).如果用户选择模板,它将被加载。

应该用于模板的图标,例如在新流程菜单,必须提供便携式网络图形(* . png),名叫程序,尺寸为64×64。

除了这些文件之外,您还可以捆绑任意的存储库条目。例如,如果您想要在模板中包含特定的数据集,您可以通过从本地存储库中添加相应的文件来实现。下一节将介绍一个示例。

最后,请注意模板机制不支持子目录。RapidMiner Studio将拒绝加载包含文件夹的模板存档。

开发模板

你可以在本地加载你的模板进程,而不用把它们和你的扩展捆绑在一起。只有当您想要分发模板时,才需要进行绑定。

您所需要做的就是将模板归档文件移动到.RapidMiner \模板目录中。请注意,存储在该目录中的模板会覆盖绑定的模板:如果您将模板与扩展捆绑在一起,并安装了模板的本地副本,则只会加载本地副本。

最小模板

让我们从一个简单的开始“你好,世界!”模板,显示单个流程注释。要创建进程文件,在RapidMiner Studio中打开一个新进程,并添加一个带有您喜欢的消息的注释:

“Hello, world !”RapidMiner过程

导出流程文件菜单(选择导出过程……),并另存为你好World.rmp

接下来,我们需要一个模板图标在正确的格式。如果你喜欢,你可以下载这个:

模板图标

作为最后一个文件,我们需要创建template.properties包含模板的名称和描述的文件。

template.name=Hello World模板。short_description=最小模板。

最后,我们需要创建模板存档。为此,使用您选择的归档器创建一个包含这三个文件的新ZIP归档。然后将文件扩展名更改为* . zip* .template,例如,重命名hello_world.ziphello_world.template。最终的文件结构应该是这样的:

hello_world.template├── Hello World.rmp ├── icon.png └── template.properties

要加载新创建的模板,请将模板文件复制到.RapidMiner /模板并重新启动RapidMiner Studio。在新流程菜单,你现在应该可以选择你的新模板了:

模板的选择

选择新条目将打开我们在第一步中创建的流程。

包括存储库条目

现在让我们向模板添加一个自定义数据集。原则上,您可以将任何存储库条目与模板捆绑在一起。但是请记住,模板机制不是为处理大型数据集而设计的。

在开始之前,让我们回顾一下RapidMiner是如何处理引用存储库条目的。这可以通过绝对路径完成,例如,/ /本地存储库/数据/例子或者通过相对路径,例如,. . /数据/例子

对于模板,我们两者都不能使用:虽然绝对路径在用于开发模板的机器上可以工作,但路径在其他机器上很可能无效。相对路径根本不起作用,因为模板机制总是创建一个没有存储库位置的新进程。

但是,RapidMiner Studio将为每个模板创建一个隐藏的示例存储库。例如,我们的内容“你好,世界!”模板的绝对路径可用/ /样本/模板/ Hello World。因此,我们必须相应地调整模板过程中的存储库引用。

首先,在本地存储库中创建一个新文件夹,例如://本地存储库/Hello World。然后创建一个新流程,并将按用户规格生成数据操作符并指定一个小数据集:

生成hello world数据集

添加一个商店操作符保存指定的数据集。将其配置为将数据集存储在上面创建的目录中,例如,as//本地存储库/Hello World/Hello World数据

存储hello world数据集

运行该流程一次以创建存储库条目。

创建一个新进程并将其存储在与数据集相同的目录中,例如,作为//本地存储库/Hello World/Hello World。将数据集拖到空白进程中,并连接检索操作符到结果端口:

Hello world来自数据

保存进程后,存储库条目将通过一个相对路径被引用:

相对存储库路径

将其更改为//样本/模板/Hello World/Hello World数据(假设我们继续使用模板名你好世界):

绝对存储库路径

由于模板尚未加载,RapidMiner Studio可能会警告您路径无效。忽略警告并保存该过程。

你的本地存储库现在应该有一个类似于这样的结构:

本地储存库├──data├──processes├──…├──Hello World│├──Hello World data│├──Hello World

如果您使用操作系统的文件浏览器浏览存储库,您将得到一个稍微不同的图像。为此,选择单击存储库并选择在文件浏览器中打开

. rapidminer /repositories/Local Repository├──…├──Hello World│├──Hello World Data。│├──Hello World Data。md│├──Hello World Data。│├──├─rammstein│├──├─├RMP──…

如您所见,生成的数据集被分成三个文件。重要的是我们要把两者捆绑在一起* .ioo(实际数据)和*。海事(元数据)与模板。然而,我们可以忽略* . properties文件。

更新上一节中创建的模板归档文件,并添加生成的数据集。归档文件现在看起来应该是这样的:

hello_world.template├── Hello World Data.ioo ├── Hello World Data.md ├── Hello World.rmp (updated process) ├── icon.png └── template.properties

重新启动RapidMiner Studio来加载更新后的模板。您应该能够运行模板,而不必修改流程。

捆绑的模板

将模板与扩展捆绑在一起是一个简单的过程。您所要做的就是将模板存档添加为资源,并将它们注册到扩展的初始化代码中。乐鱼体育安装

如果你还没有写扩展的经验,请参考我们的创建自己的扩展指南。第1-3节涵盖了构建可用于分发模板的扩展所需的所有知识。

添加模板作为资源乐鱼体育安装

按照惯例,Maven和Gradle等构建工具会在乐鱼体育安装src / mai乐鱼体育安装n /资源目录中。我们建议对RapidMiner扩展也使用这种结构。

让我们假设你选择了org.myorg.myextension作为组id。那么你的资源应该位于乐鱼体育安装src / mai乐鱼体育安装n /资源/ org/myorg/myextension。注意,RapidMiner将添加模板目录自动切换到该路径。因此,可以将上面创建的模板捆绑为…/ org/myorg/myextension/template/hello_world.template

my_extension├──README。Md├──build。gradle├──…├──src│└──主要│├──java││└──…│└──资源│├──org││└──myorg乐鱼体育安装││└──myextension││└──模板││└──hello_world。模板│├───├──…

但是,除非您将该位置注册为资源源,否则RapidMiner不会在该目录中搜索资源乐鱼体育安装。这可以在扩展的初始化代码中轻松完成。您所需要做的就是将以下行添加到initPlugin ()方法:

/** *此方法将在扩展初始化后直接调用。这是启动期间的第一个*钩子。当调用* this时,没有初始化操作符或渲染器。*/ public static void initPlugin(){//注册扩展资源Tools。乐鱼体育安装add乐鱼体育安装ResourceSource(new ResourceSource(PluginInitMyExtension.class.getClassLoader(), "org/myorg/myextension/"));}

现在您可以通过所谓的模板管理器注册扩展。要注册上面设计的模板,你可以在插件初始化代码中添加另一行:

public static void initPlugin(){//注册扩展资源Tools。乐鱼体育安装add乐鱼体育安装ResourceSource(new ResourceSource(PluginInitMyExtension.class.getClassLoader(), "org/myorg/myextension/"));//注册helloworld模板TemplateManager.INSTANCE.registerTemplate("hello_world");}

测试模板

在测试捆绑的模板时不需要进一步的特殊步骤。您所需要做的就是构建一个新版本的扩展,例如,通过命令gradle clean install扩展

但是请记住,模板存储在.RapidMiner同名的目录覆盖绑定模板。因此,请确保在启动RapidMiner Studio之前删除模板的所有工作副本。