我正在使用.Net核心中的Syncfusion PMML执行引擎17.3.0.21在C#中构建POC,试图根据基于R和Python生成的模型从导出的PMML中获得预测结果。
问题:PMML和/或Syncfusion Engine标准是否允许为给定的PMML数据字段提供null
值?我有一个像这样的数据字段:
<DataField name="myAttribute" optype="continous" dataType="double"/>
在我的代码中,我有一个IDictionary<string, object>
,其中包含一个带有"myAttribute"
的元素和一个值为null
的元素,但是在调用引擎时总是得到一个NullReferenceException
。
at Syncfusion.PMML.Helper.GetActualInputsList(Dictionary`2 fieldValuePair, MiningSchema miningSchema, LocalTransformations localTransformation, TransformationDictionary transformationDictionary, PMMLModel pmmlModel)
at Syncfusion.PMML.MiningModelEvaluator.GetResult(Object obj, IModelOptions modelOptions)
at ml.pmml.PmmlEngine.Execute(IDictionary`2 parameters) in C:\source\ml.pmml\PmmlEngine.cs:line 27
at ml.console.Program.Main(String[] args) in C:\source\ml.console\Program.cs:line 86
提供所有值后,引擎运行正常。
答案 0 :(得分:1)
Syncfusion的问候。
我们已经确认报告的问题是缺陷,并且已记录此问题的缺陷报告。
Syncfusion PMML执行引擎不允许使用null,na和“”(空字符串)进行计算。如果您的数据为空值或空值,则预期结果将引发错误消息以提供适当的值。相同的修复程序将包含在我们即将发布的每周NuGet版本中,预计将于2019年11月12日发布。
对于任何其他疑问,请从我们的支持网站(在您的帐户下)创建一个新事件,以快速提供解决方案。请从下面找到支持网站的链接。 https://www.syncfusion.com/support/directtrac/incidents/newincident
注意:我为Syncfusion工作