您正在查看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中打开一个新进程,并添加一个带有您喜欢的消息的注释:
导出流程文件菜单(选择导出过程……),并另存为你好World.rmp
。
接下来,我们需要一个模板图标在正确的格式。如果你喜欢,你可以下载这个:
作为最后一个文件,我们需要创建template.properties
包含模板的名称和描述的文件。
template.name=Hello World模板。short_description=最小模板。
最后,我们需要创建模板存档。为此,使用您选择的归档器创建一个包含这三个文件的新ZIP归档。然后将文件扩展名更改为* . zip
来* .template
,例如,重命名hello_world.zip
来hello_world.template
。最终的文件结构应该是这样的:
hello_world.template├── Hello World.rmp ├── icon.png └── template.properties
要加载新创建的模板,请将模板文件复制到.RapidMiner /模板
并重新启动RapidMiner Studio。在新流程菜单,你现在应该可以选择你的新模板了:
选择新条目将打开我们在第一步中创建的流程。
包括存储库条目
现在让我们向模板添加一个自定义数据集。原则上,您可以将任何存储库条目与模板捆绑在一起。但是请记住,模板机制不是为处理大型数据集而设计的。
在开始之前,让我们回顾一下RapidMiner是如何处理引用存储库条目的。这可以通过绝对路径完成,例如,/ /本地存储库/数据/例子
或者通过相对路径,例如,. . /数据/例子
。
对于模板,我们两者都不能使用:虽然绝对路径在用于开发模板的机器上可以工作,但路径在其他机器上很可能无效。相对路径根本不起作用,因为模板机制总是创建一个没有存储库位置的新进程。
但是,RapidMiner Studio将为每个模板创建一个隐藏的示例存储库。例如,我们的内容“你好,世界!”模板的绝对路径可用/ /样本/模板/ Hello World
。因此,我们必须相应地调整模板过程中的存储库引用。
首先,在本地存储库中创建一个新文件夹,例如://本地存储库/Hello World
。然后创建一个新流程,并将按用户规格生成数据操作符并指定一个小数据集:
添加一个商店操作符保存指定的数据集。将其配置为将数据集存储在上面创建的目录中,例如,as//本地存储库/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之前删除模板的所有工作副本。