前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >mlr3_学习器构建

mlr3_学习器构建

作者头像
火星娃统计
发布2021-01-19 12:13:03
发布2021-01-19 12:13:03
1.2K00
代码可运行
举报
文章被收录于专栏:火星娃统计火星娃统计
运行总次数:0
代码可运行

mlr3_学习器构建

概述

代码语言:javascript
代码运行次数:0
运行
复制
见到四十三次日落,需要一天
见到那年的夏天,需要一年
看到彗星划过夜空,需要一甲子
,却需要到时间尽头

mlr3::Learner类的对象为r中许多流行的机器学习算法提供了统一的接口。

mlr3包含一些基本的算法

  • mlr_learners_classif.featureless
  • mlr_learners_classif.rpart
  • mlr_learners_regr.featureless
  • mlr_learners_regr.rpart

其他算法通过mlr3learners 实现

  • 线性和逻辑回归
  • k近邻回归与分类
  • 线性和二次判别分析
  • 朴素贝叶斯
  • 支持向量机
  • 梯度增加
  • 随机回归森林随机分类森林
  • Kriging

更多的算法再mlr3extralearners仓库中

创建learner

略,暂定更新与后续

预置的learner

代码语言:javascript
代码运行次数:0
运行
复制
library("mlr3learners")
mlr_learners
## <DictionaryLearner> with 29 stored values
## Keys: classif.cv_glmnet, classif.debug, classif.featureless,
##   classif.glmnet, classif.kknn, classif.lda, classif.log_reg,
##   classif.multinom, classif.naive_bayes, classif.nnet, classif.qda,
##   classif.ranger, classif.rpart, classif.svm, classif.xgboost,
##   regr.cv_glmnet, regr.featureless, regr.glmnet, regr.kknn, regr.km,
##   regr.lm, regr.ranger, regr.rpart, regr.svm, regr.xgboost,
##   surv.cv_glmnet, surv.glmnet, surv.ranger, surv.xgboost

每一个学习器均有一下的属性

  • feature_types:可处理的数据特征,一些学习器不能处理因子
  • packages:需要的包
  • properties:附加属性和功能,比如有些学习器可以处理缺失数据
  • predict_types:目标类型,分类或者回归

选择指定的学习器

代码语言:javascript
代码运行次数:0
运行
复制
# 使用get方法
learner = mlr_learners$get("classif.rpart")
print(learner)
## <LearnerClassifRpart:classif.rpart>
## * Model: -
## * Parameters: xval=0
## * Packages: rpart
## * Predict Type: response
## * Feature types: logical, integer, numeric, factor, ordered
## * Properties: importance, missings, multiclass, selected_features,
##   twoclass, weights

param_set储存了学习器的一些参数范围,定义等内容 涉及的内容为算法的一些参数

代码语言:javascript
代码运行次数:0
运行
复制
# 
learner$param_set
## <ParamSet>
##                 id    class lower upper      levels        default value
##  1:       minsplit ParamInt     1   Inf                         20      
##  2:      minbucket ParamInt     1   Inf             <NoDefault[3]>      
##  3:             cp ParamDbl     0     1                       0.01      
##  4:     maxcompete ParamInt     0   Inf                          4      
##  5:   maxsurrogate ParamInt     0   Inf                          5      
##  6:       maxdepth ParamInt     1    30                         30      
##  7:   usesurrogate ParamInt     0     2                          2      
##  8: surrogatestyle ParamInt     0     1                          0      
##  9:           xval ParamInt     0   Inf                         10     0
## 10:     keep_model ParamLgl    NA    NA  TRUE,FALSE          FALSE

通过设置values值来改变这些参数的值

代码语言:javascript
代码运行次数:0
运行
复制
learner$param_set$values = list(cp = 0.01, xval = 0)
learner
# 上述的操作会覆盖之前所有的设置
# 如果只是想改变一部分的值,可以使用下面的方法
learner$param_set$values = mlr3misc::insert_named(
  learner$param_set$values,
  list(cp = 0.02, minsplit = 2)
)
learner

对于get方法,mlr3提供了另外一种简单的学习器建立方法

代码语言:javascript
代码运行次数:0
运行
复制
lrn("classif.rpart", id = "rp", cp = 0.001)

结束语

学习器的构建其实在这里并没有说明,需要明白的是,一个算法的构建涉及的东西较多,因此放在后续的章节。 love&peace

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 火星娃统计 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • mlr3_学习器构建
    • 概述
    • 创建learner
    • 预置的learner
    • 结束语
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档