这个部分其实很早之前就完成了,只是一直放在文件夹中吃灰,一直没有发的原因可能是我自己也没有吃透,最近也没什么可更新的内容,就想办法更新完mlr3的学习笔记吧。
mlr3是一个堪比sklearn的包,它比较新颖的一点是,采用了面向对象的方式来构建模型,整个mlr3还在不断的完善中,同时,mlr2已经停止更新,但是mlr2更加稳定,对于mlr3可能是未来机器学习的大势所趋?同时这种集成化的包,也就面临另外一个问题,新算法可能部署很慢,当然mlr3支持自定义算法,但是学习成本会有点高。
本次更新,只涉及简单的一个导论,后续的mlr3学习将会建立一个专辑,大概在10篇左右吧。
例子采用鸢尾花的数据集,使用前120个例子进行建立模型 并使用后30行的数据进行预测。
# 这里需要自己安装mlr3包
library("mlr3")
# 建立任务
task = tsk("iris")
# 建立学习器
learner = lrn("classif.rpart")
#开始训练模型
learner$train(task, row_ids = 1:120)
# 查看建立的决策树
learner$model
结果
# n= 120
# node), split, n, loss, yval, (yprob)
# - denotes terminal node
# 1) root 120 70 setosa (0.41666667 0.41666667 0.16666667)
# 2) Petal.Length< 2.45 50 0 setosa (1.00000000 0.00000000 0.00000000) *
# 3) Petal.Length>=2.45 70 20 versicolor (0.00000000 0.71428571 0.28571429)
# 6) Petal.Length< 4.95 49 1 versicolor (0.00000000 0.97959184 0.02040816) *
# 7) Petal.Length>=4.95 21 2 virginica (0.00000000 0.09523810 0.90476190) *
#使用iris的后30行数据对模型进行预测和评估
predictions = learner$predict(task, row_ids = 121:150)
predictions
结果
## <PredictionClassif> for 30 observations:
## row_id truth response
## 121 virginica virginica
## 122 virginica versicolor
## 123 virginica virginica
## ---
## 148 virginica virginic
## 149 virginica virginica
## 150 virginica virginica
对结果进行评估
predictions$score(msr("classif.acc"))
## classif.acc
## 0.8333
此次章节为导论部分,因此mlr3的里面的具体函数没有详细讲解。后续会将全部内容进行完善。
今天是元旦假期的最后一天了,快乐的时间总是那么短暂
love&peace