我正在使用Augustus作爲PMML模型的使用者。我已經修改了add two numbers example到包括DefineFunction元素,像這樣:我可以使用包含使用Augustus(Python)的DefineFunction的PMML模型嗎?
<PMML version="4.1" xmlns="http://www.dmg.org/PMML-4_1">
<Header/>
<DataDictionary>
<DataField name="x" dataType="double" optype="continuous"/>
<DataField name="y" dataType="double" optype="continuous"/>
</DataDictionary>
<TransformationDictionary>
<DefineFunction dataType="float" optype="continuous" name="add">
<ParameterField optype="continuous" name="first"></ParameterField>
<ParameterField optype="continuous" name="second"></ParameterField>
<Apply function="+" invalidValueTreatment="returnInvalid">
<FieldRef field="first"></FieldRef>
<FieldRef field="second"></FieldRef>
</Apply>
</DefineFunction>
<DerivedField name="z" dataType="double" optype="continuous">
<Apply function="add">
<FieldRef field="x"/>
<FieldRef field="y"/>
</Apply>
</DerivedField>
</TransformationDictionary>
</PMML>
我保存這個模型在一個文件中,並嘗試像這樣運行:
from resources import add_two_numbers_file # this is just the path to my model file
from augustus.strict import modelLoader
# Load model
with open(add_two_numbers_file, 'r') as model_file:
model_str = model_file.read()
model = modelLoader.loadXml(model_str)
# Run model
print model.calc({'x':[1,2,3],'y':[4,5,6]}).look()
但是,我得到一個錯誤:
AttributeError: 'DefineFunction' object has no attribute '_setupCalculate'
我使用的是最新的樹幹(修訂版794)和我能夠沒有問題運行未經修改的例子(沒有DefineFunction)。奧古斯都支持DefineFunction嗎?