作者:黄天元,复旦大学博士在读,热爱数据科学与开源工具(R),致力于利用数据科学迅速积累行业经验优势和学术知识发现。知乎专栏:R语言数据挖掘 邮箱:huang.tian-yuan@qq.com.欢迎合作交流。
R语言中,能够构建统一的机器学习框架的包除了caret之外,还有一个更加精细的包叫做mlr。比起caret,它能够设置的参数更加多,能够定制更加细致的框架。但是也是因为如此,与caret相比它要难上手一些,因为必须要懂得更多参数的内在含义才能够正确有效地使用它。本文参考<https://rawgit.com/pbiecek/DALEX_docs/master/vignettes/DALEX_mlr.html>的内容,对mlr包的基本操作做简单的解释,并给出在mlr框架下如何对模型进行解释。如果需要对内容进行详细了解,可以看先前的文章<HopeR:R语言机器学习:caret包使用及其黑箱模型解释(连续变量预测)>,<HopeR:R语言机器学习:caret包使用及其黑箱模型解释(离散变量预测)>。
# 1 载入包和数据
```{r}
library(DALEX)
library(mlr)
library(breakDown)
data(apartments)
head(apartments)
```
# 2 建模与分析
这里要讲关于mlr包建模的一些细节。首先,需要定义任务,也就是告诉模型我们需要做的是分类问题还是回归问题。需要使用makeRegrTask函数对其定义,其中id参数给这个任务做命名,data测存放数据,target参数用来告诉函数哪个变量是响应变量。具体代码如下:
```{r}
set.seed(123)
regr_task <- makeRegrTask(id = "ap", data = apartments, target = "m2.price")
```
其次,我们需要对模型进行定义。这里采用随机森林、神经网络和广义增强模型建模(GBM模型,本质还是基于树的ensemble,具体看这个gbm包的介绍)。
```{r}
regr_lrn_rf <- makeLearner("regr.randomForest")
regr_lrn_nn <- makeLearner("regr.nnet")
regr_lrn_gbm <- makeLearner("regr.