首页 > > > 【R语言】新一代机器学习包mlr3快速入门
开篇:我认为 R 的 mlr3 包,是足以媲美 Python 的 sklearn 的机器学习包。
1. mlr3包的优势
mlr3包是最先进的系统地实现机器学习算法的R包:
(1) 克服了S3语法的局限性,改用R6语法
(2) 从参数到内部数据结构,全面拥抱 data.table
(3) 降低依赖性,包括直接和间接的依赖:
(4) 目前 mlr3verse 系列生态:

2. 安装mlr3包
install.packages("mlr3")
# 或者
remotes::install_github("mlr-org/mlr3")注:若无法 remove 某包,可以删除 library 下该包文件夹,再试。
3. mlr3基本工作流
mlr3基本工作流是通过构建模块(R6类)和操作实现的,包括创建有监督机器学习任务,如分类和回归,训练模型,对新数据做预测,用交叉验证和标杆管理(benchmarking)评价和比较不同模型。

数据,封装在任务(Tasks)中,先划分为训练集和测试集,以保证模型的泛化能力。将训练数据交给机器学习算法,称为学习器(Learner),用来构建特征如何关联目标值的模型。构建的模型在测试集上进行预测,再与真实目标值比较以评价模型好坏。mlr3提供了多种评价模型好坏的度量,通常是一个数值得分。该过程将重复多次,每次都从原数据集中重抽样不同的训练集和测试集,多次重抽样迭代通过量化特定模型在不同数据上的性能,以获得更好的泛化能力。
另外,实际数据的机器学习建模工作流,还包括标准化、缺失值插补、特征选择等。
下面以对 iris 数据集构建决策树分类模型为例来阐述。
1. 创建任务
创建任务,或从自带的任务字典中选择任务:
library(mlr3)
task = TaskClassif$new(id="iris", backend=iris, target="Species")
# task = tsk("iris")
task
2. 选择学习器
从自带的学习器字典中,选择“分类树”学习器:
learner = lrn("classif.rpart" , cp=0.1, minsplit=10)
learner 
3. 划分训练集/测试集
set.seed(123)
train = sample(task$nrow, 0.8 * task$nrow)
test = setdiff(seq_len(task$nrow), train)4. 训练模型
learner$train(task, row_ids=train)
learner$model # 查看训练好的模型
5. 模型预测
predictions = learner$predict(task, row_ids=test)
predictions
6. 模型评估
predictions$confusion
measure = msr("classif.acc")
predictions$score(measure) # 预测精度
7. 重抽样
resampling = rsmp("cv", folds = 3L)
rr = resample(task, learner, resampling)
rr$score(measure)
rr$aggregate(measure) 
mlr3book.
https://mlr3book.mlr-org.com/来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31537575/viewspace-3136707/ ,如需转载,请注明出处,否则将追究法律责任。