데이터와 모델 구축에서 차원 축소의 중요성

R에서의 차원 축소

Matt Pickard

Owner, Pickard Predictives, LLC

차원의 저주

  • 차원이 조금 늘어도 데이터량은 기하급수적으로 증가
    • 데이터 희소성 → 편향과 과적합

성별과 군복무 여부 테이블

R에서의 차원 축소

차원의 저주

  • 고차원 데이터 처리의 문제
  • 차원이 조금 늘어도 데이터량은 기하급수적으로 증가
    • 데이터 희소성 → 편향과 과적합

성별과 군복무 여부 테이블

R에서의 차원 축소

차원의 저주

혈액형 변수가 추가된 표

R에서의 차원 축소

차원의 저주

혈액형 변수가 추가된 표

R에서의 차원 축소

희소성

변수 값의 모든 조합

R에서의 차원 축소

희소성

변수 값의 모든 조합과 실제 데이터 수집 비교

R에서의 차원 축소

희소성

실제 표본에는 모든 조합이 수집되지 않음

R에서의 차원 축소

희소성: 훈련/테스트 세트

훈련/테스트 세트는 최소 16개 관측치를 모두 대표해야 함

R에서의 차원 축소

희소성: 훈련/테스트 세트

훈련/테스트 세트는 최소 16개 관측치를 모두 대표해야 함

R에서의 차원 축소

희소성: 훈련/테스트 세트

훈련/테스트 세트는 16개 관측치를 각각 4번 대표해야 함

R에서의 차원 축소

희소성: 훈련/테스트 세트

훈련/테스트 세트는 16개 관측치를 각각 4번 대표해야 함

R에서의 차원 축소

최소 관측치 수 계산

blood_type_df <- 
  expand_grid(
    gender = c("Female", "Male"),
    veteran = c("Yes", "No"),
    bloodtype = c("A", "B", "AB", "O")
)
# A tibble: 16 × 3
   gender veteran bloodtype
   <chr>  <chr>   <chr>    
 1 Female Yes     A        
 2 Female Yes     B        
 3 Female Yes     AB       
 4 Female Yes     O        
 5 Female No      A        
 6 Female No      B        
 7 Female No      AB       
 8 Female No      O        
 9 Male   Yes     A              
   ...    ...     ...
R에서의 차원 축소

최소 관측치 수 계산

blood_type_df %>% 
  summarize(across(everything(), ~ length(unique(.)))) %>%

prod()
16

참고: 각 조합을 한 번씩만 대표하는 데 필요한 수입니다!

R에서의 차원 축소

각 조합의 다중 표현

blood_type_df %>% 
  summarize(across(everything(), ~ length(unique(.))) %>% 
  prod() * 4  
128
R에서의 차원 축소

Ayo berlatih!

R에서의 차원 축소

Preparing Video For Download...