创建新运营商时,我们创建输入端口以接收数据和输出端口以传递数据。对于每个输入端口,我们修复其数据类型,如:
exampleSetInput.addPrecondition (
new ExampleSetPrecondition (
exampleSetInput,
Ontology.ATTRIBUTE_VALUE));
我们还定义了输出端口数据类型,如:
getTransformer().addPassThroughRule (
exampleSetInput, exampleSetOutput);
此条件将生成与输入相同的输出数据类型和格式。我的问题是如何定义与输入无关的新输出格式和数据类型。例如,输入格式有数值数据类型和四个属性,我希望输出数据是String类型和新的两个属性。
答案 0 :(得分:0)
好吧,我在快速采矿社区“如何扩展rapidminer”中找到了交付文档中的解决方案。它包括在定义端口规则时在构造函数中使用以下函数:
getTransformer().addRule(new ExampleSetPassThroughRule(exampleSetInput, exampleSetOutPut, SetRelation.SUBSET) {
@Override
public ExampleSetMetaData modifyExampleSet(ExampleSetMetaData metaData) throws UndefinedParameterError {
metaData.removeAllAttributes();//This will remove all input attribtes
metaData.addAttribute(new AttributeMetaData("item", Ontology.STRING));//here the creation of new attribute
return metaData;
}
});
您还可以根据需要修改输入属性名称或类型。