Отбор признаков vs. извлечение признаков

Снижение размерности в R

Matt Pickard

Owner, Pickard Predictives, LLC

Подходы к снижению размерности

Овощной сад

  • Отбор признаков — как прополка
  • Извлечение признаков — как приготовление салата
1 Источник изображения: Daderot, CC0, via Wikimedia Commons
Снижение размерности в R

Отбор признаков

Набор из шести признаков, выделенных цветом

Снижение размерности в R

Отбор признаков

Набор из шести признаков с фильтрацией малоинформативных

Снижение размерности в R

Отбор признаков

Отфильтрованный набор из четырёх признаков

Снижение размерности в R

Пример кредитных данных

credit_df %>% head(n=5)
  annual_income num_bank_accounts num_credit_card outstanding_debt credit_history_months
          <dbl>             <dbl>           <dbl>            <dbl>                 <dbl>
1        87630.                 2               5             526.                   286
2        16574.                 2               5              NA                    122
3        24931.                 2               5              NA                    351
4       136680.                 2               5              NA                    216
5        76850.                 2               5            1112.                   272
Снижение размерности в R

Создание фильтра нулевой дисперсии

na_filter <- credit_df %>% 
  summarize(across(everything(), ~ var(., na.rm = TRUE))) %>%

pivot_longer(everything(), names_to = "feature", values_to = "variance") %>%
filter(variance == 0) %>%
pull(feature)
na_filter
"num_bank_accounts" "num_credit_card"
Снижение размерности в R

Создание фильтра пропущенных значений

na_filter <- credit_df %>%  
  summarize(across(everything(), ~ sum(is.na(.)))) %>%

pivot_longer(everything(), names_to = "feature", values_to = "num_missing_values") %>%
filter(num_missing_values > 0) %>%
pull(feature)
na_filter
"outstanding_debt"
Снижение размерности в R

Применение объединённого фильтра

combined_filter <- 
  c(low_var_filter, na_filter)

credit_df %>% 
  select(-all_of(combined_filter)) %>% 
  head(3)
  annual_income credit_history_months
          <dbl>                 <dbl>
1        87630.                   286
2        16574.                   122
3        24931.                   351
Снижение размерности в R

Извлечение признаков

Набор из шести признаков, выделенных цветом

Снижение размерности в R

Извлечение признаков

Несколько признаков объединены в четыре новых

Снижение размерности в R

Извлечение признаков и взаимная информация

Диаграмма Венна с пересечением

Снижение размерности в R

Извлечение признаков: объединение уникальной информации

Объединённые признаки с взаимной и уникальной информацией

Снижение размерности в R

Извлечение признаков: объединение уникальной информации

Объединённые признаки с удалённой взаимной информацией

Снижение размерности в R

Преимущества и недостатки извлечения признаков

Преимущества
  • можно объединять информацию в новые признаки
Недостатки
  • реализация сложнее
  • новые признаки труднее интерпретировать

Анализ главных компонент для индекса массы тела, роста и веса

Снижение размерности в R

Давайте потренируемся!

Снижение размерности в R

Preparing Video For Download...