机器学习主要可以分为:
(1)数据预处理;
(2)选择合适的模型;
(3)划分数据集并训练;
(4)在验证集中验证结果并评估模型的效力。
今天介绍的"mlr3"只是一个基础包,它还有很多扩展包,如:mlr3benchmark, mlr3cluster, mlr3data, mlr3db, mlr3filters, mlr3fselect, mlr3hyperband, mlr3learners, mlr3measures, mlr3misc, mlr3oml, mlr3pipelines, mlr3prob, mlr3shiny, mlr3spatiotempcv, mlr3tuning, mlr3verse, mlr3viz。这些扩展的R包需要单独安装并加载。
下面列举两个"mlr3"包的2个实例:
例一
1.选择合适的模型
# 安装"mlr3"
install.packages("mlr3")
# 加载"mlr3"
library("mlr3")
# 使用内置的鸢尾花数据集进行测试,创建任务集
task <- tsk("iris")
# 创建学习器并使用calssif.rpart算法
learner <- lrn("classif.rpart")
注:lrn()学习器只提供五种基础的算法——classif.debug,classif.featureless,classif.rpart,regr.featureless和regr.rpart,前三种是分类算法,后两种是回归算法。
2.划分数据集并训练
# 使用前120条数据作为训练集
learner$train(task, row_ids=1:120)
# 查看训练的模型
learner$model
# 使用后30条数据作为预测集
predictions = learner$predict(task, row_ids=121:150)
# 查看预测结果
predictions
# 更直观查看预测结果
data.frame(predictions$truth,predictions$response)
3.在验证集中验证结果并评估模型的效力
# 计算模型的预测准确性
predictions$score(msr("classif.acc"))
结果解读:预测准确性为83.33%,直接看预测的结果来算,在30个预测对象中,有25个被准确预测出来了,因此准确率就是25/30=0.8333
例二
1.选择合适的模型
# 安装"mlr3"和"mlr3verse"
install.packages("mlr3")
install.packages("mlr3verse")
# 加载
library("mlr3")
# 创建机器学习任务
task_penguins <- TaskClassif$new(id="penguins", backend=palmerpenguins::penguins, target="species")
task_penguins
# 加载学习器并设置参数
learner <- lrn("classif.rpart", cp=.01)
2.划分数据集并训练
# 训练模型
train_set <- sample(task_penguins$nrow, 0.8*task_penguins$nrow)
test_set <- setdiff(seq_len(task_penguins$nrow), train_set)
learner$train(task_penguins, row_ids=train_set)
# 预测模型
prediction <- learner$predict(task_penguins, row_ids = test_set)
# 查看预测结果
prediction$confusion
3.在验证集中验证结果并评估模型的效力
# 计算模型的预测准确性
measure <- msr("classif.acc")
prediction$score(measure)
# 若对预测结果不满意,可以重新采样
resampling <- rsmp("cv", folds = 3L)
rr <- resample(task_penguins, learner, resampling)
rr$score(measure)
# 再次计算模型的预测准确性
rr$aggregate(measure)
以上就是小编的分享,如果想学习生信分析内容或有项目需要合作的话,欢迎长按识别下方二维码联系我们!
ZKSX
微信号|中科生信
新浪微博|@中科生信

