명목형 예측 변수

R에서 tidymodels로 모델링하기

David Svancer

Data Scientist

명목형 데이터

특성이나 집단을 부호화한 데이터

  • 의미 있는 순서가 없음

예시

  • 회사 내 부서

    • 마케팅, 재무, 기술
  • 모국어

    • 영어, 체코어, 스페인어 ...
  • 자동차 유형

    • SUV, 세단, 소형차 ...
R에서 tidymodels로 모델링하기

명목형 예측 변수 변환

모델링을 위해 명목형 데이터를 수치형으로 변환해야 합니다 원-핫 인코딩

  • 범주 값을 [0/1] 지시 변수로 매핑
  • 원본의 고유 값마다 지시 변수 생성

 

원-핫 인코딩

R에서 tidymodels로 모델링하기

명목형 예측 변수 변환

더미 변수 인코딩

  • 원본 값 중 하나를 제외
    • 서로 다른 값이 n개면 지시 변수는 ( n - 1 )개
  • 모델링에 권장
    • recipes 패키지의 기본값

 

더미 인코딩

R에서 tidymodels로 모델링하기

리드 스코어링 데이터

명목형 예측 변수 - lead_sourceus_location

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
R에서 tidymodels로 모델링하기

더미 변수 생성

step_dummy() 함수

  • 명목형 예측 변수에서 더미 변수를 생성합니다
recipe(purchased ~ ., data = leads_training) %>%

step_dummy(lead_source, us_location) %>%
prep(training = leads_training) %>%
bake(new_data = leads_test)
# A tibble: 332 x 12
   total_visits ... lead_source_email  lead_source_organic_search  lead_source_direct_traffic  us_location_southeast ... us_location_west
       <dbl>    ...      <dbl>                 <dbl>                      <dbl>                       <dbl>                     <dbl>
1        8      ...         0                    0                          1                          0                        1
2        4      ...         0                    0                          1                          0                        0
3        3      ...         0                    1                          0                          0                        1
4        2      ...         1                    0                          0                          0                        0
5        9      ...         0                    0                          1                          0                        1

# ... with 327 more rows
R에서 tidymodels로 모델링하기

유형별 열 선택

all_nominal()all_outcomes() 선택자를 사용한 열 유형 선택

  • -all_outcomes()는 명목형 종속 변수 purchased를 제외합니다
recipe(purchased ~ ., data = leads_training) %>%

step_dummy(all_nominal(), -all_outcomes()) %>%
prep(training = leads_training) %>%
bake(new_data = leads_test)
# A tibble: 332 x 12
   total_visits ... lead_source_email  lead_source_organic_search  lead_source_direct_traffic ... us_location_west
       <dbl>    ...      <dbl>                 <dbl>                      <dbl>                           <dbl>
1        8      ...         0                    0                          1                                 1
2        4      ...         0                    0                          1                                 0
3        3      ...         0                    1                          0                                 1
4        2      ...         1                    0                          0                                 0
5        9      ...         0                    0                          1                                 1
# ... with 327 more rows
R에서 tidymodels로 모델링하기

명목형 예측 변수 전처리

R의 모델링 엔진

  • 많은 엔진이 더미 변수 생성을 자동 지원합니다
    • step_dummy() 전처리 없이 명목형 예측 변수를 사용할 수 있습니다
  • 모든 엔진에서 일관적이지는 않습니다
    • 원-핫 vs 더미 변수
    • 새 변수 이름 규칙

 

recipes 패키지는 명목형 예측 변수를 표준화된 방식으로 준비합니다

R에서 tidymodels로 모델링하기

연습해 봅시다!

R에서 tidymodels로 모델링하기

Preparing Video For Download...