次のように、glm 関数を使用して取得したロジスティック回帰モデルの PMML を生成するために、R の pmml パッケージを使用しています。
library(pmml)
var <- sample(c(1,2,3),100,replace = TRUE)
var_cat <- sample(c(1,2,3,4),100,replace = TRUE)
y <- sample(c(0,1),100,replace = TRUE)
df <- data.frame(y = as.factor(y),var = as.factor(var), var_cat = as.factor(var_cat))
model <- glm(y ~ ., data = df, family = binomial)
pmmlOutput <- pmml(model)
この PMML の PPMatrix 部分を以下に示します。
<PPMatrix>
<PPCell value="2" predictorName="var" parameterName="p1"/>
<PPCell value="3" predictorName="var" parameterName="p2"/>
<PPCell value="_cat2" predictorName="var" parameterName="p3"/>
<PPCell value="2" predictorName="var_cat" parameterName="p3"/>
<PPCell value="_cat3" predictorName="var" parameterName="p4"/>
<PPCell value="3" predictorName="var_cat" parameterName="p4"/>
<PPCell value="_cat4" predictorName="var" parameterName="p5"/>
<PPCell value="4" predictorName="var_cat" parameterName="p5"/>
</PPMatrix>
最初の変数とそのレベルは、(var,2) と (var,3) として適切に表示されます。ただし、2 番目の変数には 2 つの行があり、変数名とレベルが間違った場所で分割されています。
(var_cat,2) を取得する代わりに、以下に強調表示されているように (var,_cat2) に分割されます。
<PPCell value="_cat2" predictorName="var" parameterName="p3"/>
これは、重複する変数名 (この場合は var と var_cat) がある場合にのみ発生するようです。ただし、var_cat 変数のみが存在する場合、これは正常に機能します。
誰かがこの問題に対処する方法を提案できますか?