Модель
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 проблемы,
pmml преобразование
pfa преобразование
Ошибка в AzureML
млр в годckage не указан в списке поддерживаемых пакетов в AzureML, поэтому, возможно, я знаю, как установить пакет mlr в рабочую область AzureML.
Для развертывания я ищу «Развертывание модели R в производстве»Как вы сказали Использовать код R для развертывания, могу я узнать некоторые ссылки для изучения этого.