You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Java中设置RapidMiner Apply Model的unlabelled data参数并模拟数据示例?

用Java调用RapidMiner流程并设置Apply Model的unlabelled data参数

嘿,我来帮你搞定这个问题!你已经成功加载了RapidMiner流程并拿到模型,接下来要做的就是模拟无标签数据,然后给Apply Model算子正确传入数据对吧?我给你一步步拆解:

第一步:模拟无标签数据示例

首先你得构造和训练模型时结构完全一致的无标签数据集——属性名称、类型、顺序都得对应上,不然Apply Model会报错。这里用RapidMiner的MemoryExampleSet来手动构建数据:

import com.rapidminer.example.Attribute;
import com.rapidminer.example.AttributeFactory;
import com.rapidminer.example.MemoryExampleSet;
import com.rapidminer.example.table.DataRow;
import com.rapidminer.example.table.DoubleArrayDataRow;
import com.rapidminer.operator.io.MemoryExampleSource;
import com.rapidminer.tools.Ontology;

// 1. 定义属性:和训练模型的输入属性一致,注意无标签数据不需要包含label列
Attribute attr1 = AttributeFactory.createAttribute("age", Ontology.NUMERICAL);
Attribute attr2 = AttributeFactory.createAttribute("gender", Ontology.NOMINAL);
Attribute attr3 = AttributeFactory.createAttribute("income", Ontology.NUMERICAL);

// 2. 给标称属性添加可选值(比如gender的取值)
attr2.getMapping().mapString("male");
attr2.getMapping().mapString("female");

// 3. 创建无标签数据集
MemoryExampleSet unlabelledData = new MemoryExampleSet();
unlabelledData.getAttributes().addAll(attr1, attr2, attr3);

// 4. 添加数据行:数值型直接填数值,标称型填对应索引
DataRow row1 = new DoubleArrayDataRow(new double[]{28, attr2.getMapping().getIndex("male"), 55000});
DataRow row2 = new DoubleArrayDataRow(new double[]{35, attr2.getMapping().getIndex("female"), 72000});
unlabelledData.addDataRow(row1);
unlabelledData.addDataRow(row2);

第二步:给Apply Model传入无标签数据

敲黑板!别用op.setParameter()来传数据——unlabelled data是算子的输入端口,不是字符串参数,得通过输入端口来传递数据:

// 1. 获取Apply Model算子的"unlabelled data"输入端口
InputPort unlabelledInputPort = op.getInputPort("unlabelled data");

// 2. 将模拟好的无标签数据传入这个端口
unlabelledInputPort.setSource(new MemoryExampleSource(unlabelledData));

// 3. 运行流程(如果你的流程里已经正确连接了Model输入的话)
pr.run();

// 如果你需要获取预测结果,可以从Apply Model的输出端口拿
ExampleSet predictedResults = (ExampleSet) op.getOutputPort("labelled data").getData();

注意事项

  • 一定要保证无标签数据的属性和训练模型时的输入属性完全匹配,包括名称、类型、顺序,否则会触发属性不匹配的错误。
  • 如果你的流程里已经有其他数据源连接到Apply Model的unlabelled data端口,记得先断开或者替换掉,不然会冲突。

内容的提问来源于stack exchange,提问作者Ameer Abdullah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 04:01:27