是否存在可帮助查找PMML语法和/或逻辑错误的PMML调试器?

时间:2015-11-10 17:51:44

标签: java pmml

在过去的几周里,我花了很多时间处理语法或逻辑错误的PMML文件。我目前的流程包括查看PMML文件并逐步执行JPMML代码,直到找出错误。

我发现的常见问题,

  • PMML中未定义的变量
  • DerivedField If-Else语句属于缺失变量且不使用missingValueReplacement
  • 尝试乘以字符串值
  • 在MiningSchema中定义的无法在DataDictionary中枚举的分类变量中的invalidValueTreatment,这意味着永远不会使用invalidValueTreatment。

PMML可以使用哪些调试工具?

任何有助于语法或逻辑调试的工具都会有所帮助。

1 个答案:

答案 0 :(得分:1)

可能还没有这样的工具。我的逻辑是,调试器将建立在评估器之上。由于JPMML-Evaluator库是最先进的评估器,并且它不提供专用的调试工具,因此很难看到其他工具如何在这个领域击败它。

调试PMML时,您可能会遇到两类问题。首先,存在"静态错误"与PMML文档的结构相关的内容,例如缺少,无效或放错位置的XML元素和属性。可以通过对PMML XSD文件执行XML验证或使用JPMML-Model Visitor API来发现它们。其次,有动态错误"与某些数据记录的评估路径有关。例如,正如您刚才指出的那样,可能会为分类字段分配一个没有处理程序的值。

JPMML-Evaluator库应该在检测到错误情况时抛出异常。如果启用了SAX定位器信息,则异常消息会提供违规PMML内容的行号。当然,如果JPMML-Evaluator库进行了适当的日志记录,调试工作会更容易。

您还可以尝试分析PMML生产者应用程序的源代码。为什么它首先这样做?