我的PMML模型中有一些派生字段,我希望将它们作为输出字段公开。还有..。我可以让它在奥古斯都和JPMML中工作(通过OpenScoring),但我似乎不得不稍微改变一下。我想知道是否有人对谁做得对?PMML规范在这一点上似乎不是100%清楚。
对于JPMML,我只需引用我想要的派生字段就可以做到这一点,而且我必须避免将它们作为“预测”包含在MiningSchema中。
<MiningSchema>
<MiningField name="foo_input" usageType="active"/>
</MiningSchema>
<Output>
<OutputField name="foo_output" dataType="integer" feature="transformedValue" optype="continuous">
<FieldRef field="foo_derived"/>
</OutputField>
</Output>
但这不适用于奥古斯都。为此,我需要在MiningSchema中将这些输出声明为“预测”字段。
<MiningSchema>
<MiningField name="foo_input" usageType="active"/>
<MiningField name="foo_output" usageType="predicted"/>
</MiningSchema>
<Output>
<OutputField name="foo_output" dataType="integer" feature="transformedValue" optype="continuous">
<FieldRef field="foo_derived"/>
</OutputField>
</Output>
因此,我必须生成不同的PMML,这取决于我期望目标评分环境是什么.听起来不太好。但哪一个做得对?或者,是否有一种更易于移植的表达方式?
在所有这些片段中,foo_derived只是一个基于foo_input输入值的派生字段。不管是局部的还是全局的,似乎都没有什么区别。
<DerivedField name="foo_derived" dataType="integer" optype="continuous">
<Apply function="+"> <!-- example definition, actual one is a bit more complicated -->
<FieldRef field="foo_input"/>
<Constant dataType="integer">1</Constant>
</Apply>
</DerivedField>
发布于 2015-12-23 06:01:27
element声明必须“导入”哪些字段值才能对模型元素进行评分。此外,如果模型元素表示有监督的学习模型,则可以声明唯一目标字段的名称:
target
:用于监督模型的训练目标的字段。
奥古斯都似乎认为,MiningSchema
元素还必须声明哪些字段值是“导出的”。但是,PMML规范在任何方面都不支持这种假设。OutputField
元素是一个独立的实体,它的存在不需要任何其他元素“确认”。
因此,您应该在导出模型时考虑到JPMML。如果您也需要让它们在Augustus上被攻击,那么您可以考虑使用JPMML的Visitor临时重新排列它们。
https://stackoverflow.com/questions/34433588
复制相似问题