大数跨境

机器学习包——mlr3

机器学习包——mlr3 中科生信
2021-10-24
3
导读:机器学习主要可以分为: (1)数据预处理; (2)选择合适的模型; (3)划分数据集并训练; (4)在验证集

机器学习主要可以分为:

 (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个实例:

01

例一

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

02

例二

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

微信号|中科生信

新浪微博|@中科生信


【声明】内容源于网络
0
0
中科生信
中科生信是一家专业从事生物技术服务的公司,提供生物医学领域的定制化数据分析服务。公司业务有:二代测序平台、数据库搭建技术、测序个性化分析平台、以及生信分析定制化服务!致力于为客户提供“一站式”科研服务。
内容 580
粉丝 0
中科生信 中科生信是一家专业从事生物技术服务的公司,提供生物医学领域的定制化数据分析服务。公司业务有:二代测序平台、数据库搭建技术、测序个性化分析平台、以及生信分析定制化服务!致力于为客户提供“一站式”科研服务。
总阅读1.4k
粉丝0
内容580