特征选择 vs. 特征提取

R 中的降维

Matt Pickard

Owner, Pickard Predictives, LLC

降维方法

菜园

  • 特征选择 就像除草
  • 特征提取 就像做沙拉
1 图片来源:Daderot,CC0,来自维基共享资源
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 中的降维

Passons à la pratique !

R 中的降维

Preparing Video For Download...