でトレーニングされた回帰モデルから PMML を生成しようとしcaret
ていmethod='glm'
ます。モデル例:
library('caret')
data('GermanCredit')
set.seed(123)
train_rows <- createDataPartition(GermanCredit$Class, p=0.6, list=FALSE)
train_x <- GermanCredit[train_rows, c('Age','ForeignWorker','Housing.Own',
'Property.RealEstate','CreditHistory.Critical') ]
train_y <- as.integer( GermanCredit[train_rows, 'Class'] == 'Good' )
some_glm <- train( train_x, train_y, method='glm', family='binomial',
trControl = trainControl(method='none') )
summary(some_glm$finalModel)
この関連する質問に対する受け入れられない回答type='rf'
は、マトリックス インターフェイスを使用することができないことを示唆しています。
したがって、マトリックスまたは式の構文を使用して pmml を取得することはできません (finalModel
いずれにせよ、まったく同じ s が生成されると確信しています)。
library('pmml')
pmml(some_glm$finalModel)
# Error in if (model$call[[1]] == "glm") { : argument is of length zero
# Same problem if I try:
some_glm2 <- train( Class ~ Age + ForeignWorker + Housing.Own +
Property.RealEstate + CreditHistory.Critical,
data=GermanCredit[train_rows, ], family="binomial",
method='glm',
trControl = trainControl(method='none') )
pmml(some_glm2$finalModel)
数式インターフェイスを使用してベース glm で動作します。
some_glm_base <- glm(Class ~ Age + ForeignWorker + Housing.Own +
Property.RealEstate + CreditHistory.Critical,
data=GermanCredit[train_rows, ], family="binomial")
pmml(some_glm_base) # works
相互運用性のため、引き続き使用したいと思いますcaret
。some_glm
生産されたものを受け入れられるcaret
形式に変換する方法はありますか? pmml()
または、glm()
pmml 機能が必要な場合は、構造を使用する必要がありますか?