Есть ли способ переименовать имя производного поля в Local Transformations при использовании SVM в R с scale = TRUE (по умолчанию) - PullRequest
0 голосов
/ 05 февраля 2019

При использовании пакета e1071, классификация SVM с набором данных Iris.Я вижу, что модель / pmml, созданная с помощью scale = TRUE, всегда нормализует атрибуты набора данных с именами, такими как attribute_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>

1 Ответ

0 голосов
/ 05 февраля 2019

Согласно исходному коду пакета pmml, имена производных полей жестко запрограммированы:

dfName <- paste("algorithm_derived_nc_",inputNames[i],sep="")

Почему именование элементов DerivedField вообще является проблемой?Их область действия ограничена телом элемента SupportVectorMachineModel, поэтому конечный пользователь не видит их и не заботится о них.

Вы всегда можете постобработать полученные файлы PMML с помощью XML или обычного текста.манипуляционные инструменты.Например, было бы просто заменить «attribute_derived_nc_» на «adn_» (или что-либо еще, что сочтет уместным).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...