Как использовать млр упакованную модель как есть? - PullRequest
0 голосов
/ 04 апреля 2019

Модель

rf.lrn.base = makeLearner("classif.randomForest", predict.type = "prob",fix.factors.prediction=TRUE)
rf.lrn <- makeFilterWrapper(rf.lrn.base,fw.method = "chi.squared", fw.perc = 0.5)
rf.lrn

Тюнинг

tune_rdesc.rf <- makeResampleDesc("CV", iters = 3L, stratify = TRUE)
rf_ps <- makeParamSet(makeDiscreteParam("fw.perc", values = seq(0, 1, 0.1)),
                         makeIntegerParam("ntree", lower = 10, upper = 50), 
                         makeIntegerParam("mtry", lower = 10, upper = 40)
                         )
Tuned_rf <- tuneParams(rf.lrn, task = classif.task,resampling = tune_rdesc.rf,par.set = rf_ps,control = makeTuneControlGrid())

Упаковщик

fused_rf <- makeFilterWrapper(rf.lrn.base,fw.method = "chi.squared",fw.perc = Tuned_rf$x$fw.perc)

Fit


rf_mod <- mlr::train(fused_rf, classif.task)
rf_mod

Прогноз, ниже приведены таблицыправда, prob.0, prob.1, ответ, Отсюда я могу получить доступ к pred_rf $ data $ prob.0 и pred_rf $ data $ prob.1 отдельно

pred_rf <- predict(rf_mod, newdata = Test_WOE_clean)
pred_rf$data

Ниже приведен только ответ


randomForest <- getLearnerModel(rf_mod, more.unwrap = TRUE)
pred_rf2 <- predict(randomForest, newdata = Test_WOE_clean)
pred_rf2

Теперь я хочу преобразовать модель в файл PMML, используя пакет pmml (Язык разметки прогнозируемой модели)

library(pmml)
rf_pmml <- pmml(model=randomForest)

Выше выдает ошибку как

Error in UseMethod("pmml") : 
  no applicable method for 'pmml' applied to an object of class "c('FilterModel', 'BaseWrapperModel', 'WrappedModel')"

Но нижене

randomForest <- getLearnerModel(rf_mod, more.unwrap = TRUE)
rf_pmml <- pmml(model=randomForest)

То же самое для преобразования в PFA (переносимый формат для аналитики) с использованием библиотеки (aurelius)

Другая проблема заключается в загрузке в AzureML

rf.inputdata <- as.data.frame(subset(Train_WOE_clean,select=-c(Target)))

rf.PredictT <- function(inputdata){
  predict(rf_mod,newdata=inputdata)
}

library(AzureML)
library(devtools)

#workspace 
rf.ws <- workspace(
  id = "**************",
  auth = "**************",
  api_endpoint = "https://studioapi.azureml.net"
)


rf.TWebService <- publishWebService(rf.ws,
                                    fun=rf.PredictT,
                                    name="rf_mod",
                                    inputSchema = rf.inputdata)

Таким образом, я получу модель в качестве веб-службы в AzureML, я могу делать там предсказания, но она выдает ошибку


no applicable method for 'predict' applied to an object of class "c('FilterModel', 'BaseWrapperModel', 'WrappedModel')

Могу ли я узнать, как решить 4 проблемы,

  1. pmml преобразование

  2. pfa преобразование

  3. Ошибка в AzureML

  4. млр в годckage не указан в списке поддерживаемых пакетов в AzureML, поэтому, возможно, я знаю, как установить пакет mlr в рабочую область AzureML.

  5. Для развертывания я ищу «Развертывание модели R в производстве»Как вы сказали Использовать код R для развертывания, могу я узнать некоторые ссылки для изучения этого.

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