2017-10-12 41 views
0

是否有执行在MLR使用包装预处理步骤后访问数据的方式是什么?这里提供一个剥离版本的代码:MLR - 之间或预处理后接入数据的步骤

library(mlr) 
library(mlbench) 

data <- BreastCancer[, 2:11] 
lrn <- makeLearner(cl = "classif.ranger", 
         predict.type = "prob", 
         fix.factors.prediction = TRUE, 
         importance = "permutation") 

lrn <- makeImputeWrapper(lrn, classes = list(integer = imputeMedian(), 
                numeric = imputeHist(), 
                factor = imputeMode())) 

lrn <- makeRemoveConstantFeaturesWrapper(lrn, na.ignore = TRUE) 

classif.task <- makeClassifTask(data = rawdata, target = "Target", positive = "1") 

model <- train(lrn, classif.task) 

该代码定义了一个学习者,删除了常量特征并执行插补。有没有办法看到删除常量要素后数据的外观如何,或者更有趣的是,在插补之后呢?

回答

1

这不是在此刻实现 - 在包装点是封装的一切,让你不必担心中间步骤。

但是,您可以使用impute()功能(用于去除的恒定功能和下同)分别做同样的归集。有关更多信息,请参阅the tutorial

+0

感谢您的快速反应。我使用包装的原因,例如上面没有提到的定制的方法是将训练和评分代码合并到一个函数中,同时在两者之间传递参数(如果需要,还可以执行超参数调整)。但是,在“真实”工作流程中测试/调试代码通常与使用单元测试一样有用。 **而且**有些情况下,第三个包裹,例如在我的情况下xgboostExplainer(https://medium.com/applied-data-science/new-r-package-the-xgboost-explainer-51dd7d1aa211),需要经过预处理的训练数据。 – notiv

+1

如果你写定制PreprocessingWrappers(http://mlr-org.github.io/mlr-tutorial/devel/html/preproc/index.html#preprocessing-wrapper-functions),你可以简单地存储东西,在全球环境(< < - )或者在火车上写东西到磁盘并预测功能。 –

+0

谢谢@jakobr,这实际上是一个很好的提示! – notiv

相关问题