在jpmml中输入错误

时间:2015-10-23 12:25:47

标签: java pmml

我正在测试jpmml-evaluator。我有以下代码:

PMML pmml = readPMML(new File(file));
ModelEvaluatorFactory mef = ModelEvaluatorFactory.newInstance();
ModelEvaluator<?> modelEvaluator = mef.newModelManager(pmml);
Evaluator eval = (Evaluator)modelEvaluator;

List<FieldName> active = eval.getActiveFields();
ArrayList<String> input = new ArrayList<String>();
input.add(Double.toString(test_pmml.getXP_TEST_PMML_CAPITAL()));
input.add(Double.toString(test_pmml.getXP_TEST_PMML_NBTER()));
input.add(Double.toString(test_pmml.getXP_TEST_PMML_ARRIER()));
input.add(Double.toString(test_pmml.getXP_TEST_PMML_EFFECTI()));

Map<FieldName, FieldValue> args = new LinkedHashMap<FieldName, FieldValue>();
int i = 0;
for (FieldName field : active) {
  FieldValue value = eval.prepare(field, input.get(i));
  args.put(field, value);
  i++;
}
Map<FieldName, ?> results = eval.evaluate(args);
FieldName target = eval.getTargetField();
System.out.println("target value : " + results.get(target));

我在评估线上得到了这个错误:

org.jpmml.evaluator.TypeCheckException: Expected STRING, but got null

我理解错误,但我无法理解为什么会发生错误。我确保我的args不为空,并且不包含任何空值。 fields也没问题。我想也许我没有正确地转换我的双值,但使用String.valueOf()代替Double.toString并没有解决问题。这里有什么我想念的吗?

0 个答案:

没有答案