见到四十三次日落,需要一天
见到那年的夏天,需要一年
看到彗星划过夜空,需要一甲子
,却需要到时间尽头
mlr3::Learner类的对象为r中许多流行的机器学习算法提供了统一的接口。
mlr3包含一些基本的算法
其他算法通过mlr3learners
实现
更多的算法再mlr3extralearners
仓库中
略,暂定更新与后续
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
每一个学习器均有一下的属性
选择指定的学习器
# 使用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储存了学习器的一些参数范围,定义等内容 涉及的内容为算法的一些参数
#
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值来改变这些参数的值
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提供了另外一种简单的学习器建立方法
lrn("classif.rpart", id = "rp", cp = 0.001)
学习器的构建其实在这里并没有说明,需要明白的是,一个算法的构建涉及的东西较多,因此放在后续的章节。
love&peace