1

次のように、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 変数のみが存在する場合、これは正常に機能します。

誰かがこの問題に対処する方法を提案できますか?

4

1 に答える 1