在使用e1071软件包时,带有Iris数据集的SVM分类。我看到使用scale = TRUE生成的model / pmml总是使用诸如algorithm_derived_nc_之类的名称来规范化数据集属性。有没有一种方法可以指定特定名称,例如“ attr1_foo”,而不是默认名称。
library(pmml)
library(e1071)
svmModel<-svm(Species~.,data=iris)
pmml(svmModel)
shows..
<PMML...>
..
<Output>
<OutputField name="Predicted_Species" feature="predictedValue"/>
</Output>
<LocalTransformations>
<DerivedField name="algorithm_derived_nc_Sepal.Length" dataType="double" optype="continuous">
<NormContinuous field="Sepal.Length">
<LinearNorm orig="0" norm="-7.05660228803556"/>
<LinearNorm orig="5.84333333333333" norm="0"/>
</NormContinuous>
</DerivedField>
...
</PMML>
答案 0 :(得分:0)
根据pmml
包源代码,派生字段的名称是硬编码的:
dfName <- paste("algorithm_derived_nc_",inputNames[i],sep="")
为什么DerivedField
元素的命名根本没有问题?它们的范围仅限于SupportVectorMachineModel
元素的正文,因此最终用户永远不会看到或不必关心它们。
您始终可以使用XML或纯文本操作工具对结果PMML文件进行后处理。例如,将“ algorithm_derived_nc_”替换为“ adn _”(或任何其他合适的方法)将很简单。