tidymodelsでのモデル構築と評価

Rによる次元削減

Matt Pickard

Owner, Pickard Predictives, LLC

モデル当てはめの流れ

モデル当てはめの最初のステップはデータ分割です

Rによる次元削減

モデル当てはめの流れ

モデル当てはめの2番目のステップはデータ準備です

Rによる次元削減

モデル当てはめの流れ

モデル当てはめの3番目のステップはモデルの当てはめです

Rによる次元削減

モデル当てはめの流れ

モデル当てはめの4番目のステップはモデル評価です

Rによる次元削減

tidymodels でのモデル当てはめ

tidymodels にはデータを学習用とテスト用に分割する関数があります

Rによる次元削減

tidymodels でのモデル当てはめ

tidymodels のレシピには、前処理ステップを作成する関数があります

Rによる次元削減

tidymodels でのモデル当てはめ

tidymodels にはワークフロー内で多様なモデルを当てはめる関数があります

Rによる次元削減

学習用とテスト用への分割

split <- initial_split(credit_df, prop = 0.8, strata = credit_score)


train <- split %>% training()
test <- split %>% testing()
Rによる次元削減

レシピとモデルの作成

feature_selection_recipe <- 
  recipe(credit_score ~ ., data = train) %>%

step_filter_missing(all_predictors(), threshold = 0.5) %>%
step_scale(all_numeric_predictors()) %>%
step_nzv(all_predictors()) %>%
prep()
lr_model <- logistic_reg() %>%

set_engine("glm")
Rによる次元削減

ワークフローの作成と当てはめ

credit_wflow <- workflow() %>%

add_recipe(feature_selection_recipe) %>%
add_model(lr_model)
credit_fit <- credit_wflow %>% fit(data = train)
Rによる次元削減

モデルの評価

# テストデータで予測
credit_pred_df <- predict(credit_fit, test) %>% 
  bind_cols(test %>% select(credit_score))


# F スコアを評価 f_meas(credit_pred_df, credit_score, .pred_class)
# A tibble: 1 × 3
  .metric .estimator .estimate
  <chr>   <chr>          <dbl>
1 f_meas  macro          0.519
Rによる次元削減

tidy() でレシピを確認

tidy(feature_selection_recipe, number = 1)
# A tibble: 2 × 2
  terms            id                  
  <chr>            <chr>               
1 age              filter_missing_gVVfc
2 outstanding_debt filter_missing_gVVfc
Rによる次元削減

tidy() でモデルを確認

# モデル推定値を表示
tidy(credit_fit)
# A tibble: 44 × 5
   term                estimate std.error statistic p.value
   <chr>                  <dbl>     <dbl>     <dbl>   <dbl>
 1 (Intercept)           2.88       0.918    3.13   0.00173
 2 monthAugust          -0.449      0.236   -1.91   0.0565 
 3 monthFebruary        17.7      677.       0.0262 0.979  
 4 monthJanuary         17.7      661.       0.0268 0.979  
 ...                    ...       ...        ...    ... 
Rによる次元削減

演習に進みましょう!

Rによる次元削減

Preparing Video For Download...