R에서 tidymodels로 모델링하기
David Svancer
Data Scientist

열 역할 정의
변수 타입 결정
recipe() 함수로 수행

필요한 전처리 단계 추가
각 단계는 개별 step_*() 함수로 추가

recipe 객체는 보통 학습 데이터에 대해 훈련됩니다
prep() 함수로 레시피를 훈련합니다

훈련된 전처리 변환을 모두 적용
bake() 함수로 레시피를 적용합니다

리드 스코어링 데이터에서 total_time 로그 변환
leads_training
# A tibble: 996 x 7
purchased total_visits total_time pages_per_visit total_clicks lead_source us_location
<fct> <dbl> <dbl> <dbl> <dbl> <fct> <fct>
1 yes 7 1148 7 59 direct_traffic west
2 no 5 228 2.5 25 email southeast
3 no 7 481 2.33 21 organic_search west
4 no 4 177 4 37 direct_traffic west
5 no 2 1273 2 26 email midwest
# ... with 991 more rows
recipe() 함수
data 인수
recipe 객체에 step_log()를 추가해 로그 변환 단계 삽입
total_time 선택, 로그 밑 지정leads_log_rec <- recipe(purchased ~ ., data = leads_training) %>%step_log(total_time, base = 10)
leads_log_rec
Data Recipe
Inputs:
role #variables
outcome 1
predictor 6
Operations:
Log transformation on total_time
summary()에 recipe 객체 전달
type 열role 열leads_log_rec %>%
summary()
# A tibble: 7 x 4
variable type role source
<chr> <chr> <chr> <chr>
1 total_visits numeric predictor original
2 total_time numeric predictor original
3 pages_per_visit numeric predictor original
4 total_clicks numeric predictor original
5 lead_source nominal predictor original
6 us_location nominal predictor original
7 purchased nominal outcome original
prep() 함수
recipe 객체를 받음training 인수
훈련된 recipe 객체 출력
[trained]로 표시leads_log_rec_prep <- leads_log_rec %>%
prep(training = leads_training)
leads_log_rec_prep
Data Recipe
Inputs:
role #variables
outcome 1
predictor 6
Training data contained 996 data points and
no missing data.
Operations:
Log transformation on total_time [trained]
bake() 함수
recipe 객체new_data 인수leads_training으로 레시피를 훈련prep()이 보관new_data에 NULL을 전달해 추출leads_log_rec_prep %>%
bake(new_data = NULL)
# A tibble: 996 x 7
total_visits total_time ... us_location purchased
<dbl> <dbl> ... <fct> <fct>
1 7 3.06 ... west yes
2 5 2.36 ... southeast no
3 7 2.68 ... west no
4 4 2.25 ... west no
5 2 3.10 ... midwest no
# ... with 991 more rows
recipe 훈련에 쓰지 않은 데이터셋 변환
new_data 인수에 전달recipe가 모든 단계를 새 데이터에 적용leads_log_rec_prep %>%
bake(new_data = leads_test)
# A tibble: 332 x 7
total_visits total_time ... us_location purchased
<dbl> <dbl> ... <fct> <fct>
1 8 2 ... west no
2 4 3.13 ... northeast yes
3 3 2.25 ... west no
4 2 1.20 ... midwest no
5 9 3.01 ... west yes
# ... with 327 more rows
R에서 tidymodels로 모델링하기