型号
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)
健身
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)
与使用库(aurelius)转换为PFA(分析的便携式格式)的方式相同
另一个问题是要上传到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中的Web服务获取,我可以在那里进行预测,但是会产生错误
no applicable method for 'predict' applied to an object of class "c('FilterModel', 'BaseWrapperModel', 'WrappedModel')
我可以知道如何解决这四个问题吗
pmml转换
pfa转换
AzureML中的错误
mlr软件包未在AzureML中列为受支持的软件包,所以请让我知道如何在AzureML工作区中安装mlr软件包。
对于部署,我正在研究“在生产环境中部署R模型”,正如您所说的使用R代码进行部署,我可能知道一些研究该链接的方法。