Machine learning กับ mlr

การปรับ Hyperparameter ใน R

Dr. Shirin Elsinghorst

Data Scientist

แพ็กเกจ mlr

  • mlr เป็นอีกหนึ่ง framework สำหรับ machine learning ใน R

การเทรนโมเดลมี 3 ขั้นตอน:

  1. กำหนด task
  2. กำหนด learner
  3. Fit โมเดล

https://mlr-org.github.io/mlr

การปรับ Hyperparameter ใน R

ชุดข้อมูลใหม่: User Knowledge Data

library(tidyverse)
glimpse(knowledge_data)
Observations: 150
Variables: 6
$ STG <dbl> 0.080, 0.000, 0.180, 0.100, 0.120, 0.090, 0.080, 0.150, ...
$ SCG <dbl> 0.080, 0.000, 0.180, 0.100, 0.120, 0.300, 0.325, 0.275, ...
$ STR <dbl> 0.100, 0.500, 0.550, 0.700, 0.750, 0.680, 0.620, 0.800, ...
$ LPR <dbl> 0.24, 0.20, 0.30, 0.15, 0.35, 0.18, 0.94, 0.21, 0.19, ...
$ PEG <dbl> 0.90, 0.85, 0.81, 0.90, 0.80, 0.85, 0.56, 0.81, 0.82, ...
$ UNS <chr> "High", "High", "High", "High", "High", "High", ...

 

knowledge_data %>%
    count(UNS)

 

# A tibble: 3 x 2
  UNS        n
  <chr>  <int>
1 High      50                                                         
2 Low       50
3 Middle    50
การปรับ Hyperparameter ใน R

Task ใน mlr สำหรับ supervised learning

  • RegrTask() สำหรับ regression
  • ClassifTask() สำหรับ binary และ multi-class classification
  • MultilabelTask() สำหรับปัญหา multi-label classification
  • CostSensTask() สำหรับ cost-sensitive classification ทั่วไป

 

ด้วยชุดข้อมูลความรู้ของนักเรียน สามารถสร้าง classifier ได้ดังนี้:

task <- makeClassifTask(data = knowledge_train_data, 
                        target = "UNS")
การปรับ Hyperparameter ใน R
listLearners()
                            class                   package
1                     classif.ada                 ada,rpart
2              classif.adaboostm1                     RWeka
3             classif.bartMachine               bartMachine
4                classif.binomial                     stats
5                classif.boosting              adabag,rpart
6                     classif.bst                 bst,rpart
7                     classif.C50                       C50
8                 classif.cforest                     party
9              classif.clusterSVM        SwarmSVM,LiblineaR
10                  classif.ctree                     party
...
# Define learner
lrn <- makeLearner("classif.h2o.deeplearning", 
                   fix.factors.prediction = TRUE,
                   predict.type = "prob")
การปรับ Hyperparameter ใน R

การ fit โมเดลใน mlr

tic()
# Define task
task <- makeClassifTask(data = knowledge_train_data, 
                        target = "UNS")
# Define learner
lrn <- makeLearner("classif.h2o.deeplearning",
                   fix.factors.prediction = TRUE)
# Fit model
model <- train(lrn, 
               task)
toc()
3.782 sec elapsed
การปรับ Hyperparameter ใน R

มาฝึกกันเถอะ!

การปรับ Hyperparameter ใน R

Preparing Video For Download...