Xây dựng và tinh chỉnh mô hình random forest

Machine Learning trong tidyverse

Dmitriy (Dima) Gorenshteyn

Lead Data Scientist, Memorial Sloan Kettering Cancer Center

Hiệu suất Cross Validation

Machine Learning trong tidyverse

Hiệu suất Cross Validation

Machine Learning trong tidyverse

Hiệu suất Cross Validation

Machine Learning trong tidyverse

Hiệu suất Cross Validation

Machine Learning trong tidyverse

Mô hình Hồi quy tuyến tính

 

Xác thực Mean Absolute Error:

1,5 năm

Machine Learning trong tidyverse

Một mô hình khác

Machine Learning trong tidyverse

Lợi ích của Random Forest

  • Xử lý được quan hệ phi tuyến
  • Xử lý được tương tác
Machine Learning trong tidyverse

Công cụ Random Forest cơ bản

Mô hình
rf_model <- ranger(formula = ___, data = ___, seed = ___)

 

Dự đoán
prediction <- predict(rf_model, new_data)$predictions
Machine Learning trong tidyverse

Xây dựng các mô hình Random Forest cơ bản

library(ranger)
cv_models_rf <- cv_data %>% 
 mutate(model = map(train, ~ranger(formula = life_expectancy~., 
                                    data = .x, seed = 42)))
cv_prep_rf <- cv_models_rf %>% 
 mutate(validate_predicted = map2(model, validate, 
                                  ~predict(.x, .y)$predictions))
Machine Learning trong tidyverse

Siêu tham số của ranger

Mô hình
rf_model <- ranger(formula, data, seed, mtry, num.trees)
Siêu tham số
name range default
mtry $1:number\ of\ features$ $\sqrt{number\ of\ feat}$
num.trees $1:\infty$ $500$
Machine Learning trong tidyverse

Tinh chỉnh siêu tham số

cv_tune <- cv_data %>% 
  crossing(mtry = 1:5)

cv_tune
# A tibble: 25 x 5
   splits       id    train                validate            mtry
   <list>       <chr> <list>               <list>             <int>
 1 <S3: rsplit> Fold1 <tibble [2,402 × 7]> <tibble [601 × 7]>     1
 2 <S3: rsplit> Fold1 <tibble [2,402 × 7]> <tibble [601 × 7]>     2
 3 <S3: rsplit> Fold1 <tibble [2,402 × 7]> <tibble [601 × 7]>     3
 4 <S3: rsplit> Fold1 <tibble [2,402 × 7]> <tibble [601 × 7]>     4
 5 <S3: rsplit> Fold1 <tibble [2,402 × 7]> <tibble [601 × 7]>     5
 6 <S3: rsplit> Fold2 <tibble [2,402 × 7]> <tibble [601 × 7]>     1
 7 <S3: rsplit> Fold2 <tibble [2,402 × 7]> <tibble [601 × 7]>     2
Machine Learning trong tidyverse

Tinh chỉnh siêu tham số

cv_model_tunerf <- cv_tune %>% 
  mutate(model = map2(train, mtry, ~ranger(formula = life_expectancy~., 
                                           data = .x, mtry = .y)))

cv_model_tunerf
# A tibble: 25 x 6
   splits       id    train                validate      mtry  model       
 * <list>       <chr> <list>               <list>        <int> <list>      
 1 <S3: rsplit> Fold1 <tibble [2,402 × 7]> <tibble [60…   1    <S3: ranger>
 2 <S3: rsplit> Fold1 <tibble [2,402 × 7]> <tibble [60…   2    <S3: ranger>
 3 <S3: rsplit> Fold1 <tibble [2,402 × 7]> <tibble [60…   3    <S3: ranger>
 4 <S3: rsplit> Fold1 <tibble [2,402 × 7]> <tibble [60…   4    <S3: ranger>
 5 <S3: rsplit> Fold1 <tibble [2,402 × 7]> <tibble [60…   5    <S3: ranger>
 6 <S3: rsplit> Fold2 <tibble [2,402 × 7]> <tibble [60…   1    <S3: ranger>
 7 <S3: rsplit> Fold2 <tibble [2,402 × 7]> <tibble [60…   2    <S3: ranger>
Machine Learning trong tidyverse

Cùng luyện tập nào!

Machine Learning trong tidyverse

Preparing Video For Download...