Feature hashing

Ingineria caracteristicilor în R

Jorge Zazueta

Research Professor and Head of the Modeling Group at the School of Economics, UASLP

Ce este feature hashing?

  • Transformă o variabilă text într-un set de variabile numerice
  • Utilizează valori hash ca indici de caracteristici
  • Reprezentare compactă a datelor în memorie
  • Util când se anticipează categorii noi în datele viitoare

Se atribuie un număr de index fiecărei companii aeriene pe baza valorilor text.

Tabel ilustrând feature hashing pentru companiile aeriene.

Ingineria caracteristicilor în R

Câte companii aeriene există?

Setul de date flights include companii aeriene ca factori, dar nu știm dacă vor apărea companii noi în datele viitoare.

flights %>%
  select(carrier) %>%
  table()
carrier
  9E   AA   AS   B6   DL   EV   F9   FL   HA   MQ   OO   UA   US   VX   WN   YV 
 859 1744   26 2503 2619 3014   38  186   14 1540    2 3367 1228  244  757   41
Ingineria caracteristicilor în R

Să aplicăm hashing pe această caracteristică

Putem crea hash-uri dummy pentru a reprezenta valorile factorilor, folosind pachetul textrecipes.

recipe <- recipe(~carrier, 
                 data = flights_train) %>%
  step_dummy_hash(carrier, prefix = NULL, 
                  signed = FALSE, 
                  num_terms = 50L)
# Prep the recipe
object <- recipe %>%
  prep()

# Bake the recipe object with new data
baked <- bake(object,
              new_data = flights_test)

O privire asupra reprezentării step_dummy_hash().

bind_cols(flights_test$carrier,baked)[1:6,c(1,18:20)]
New names:
• `` -> `...1`
# A tibble: 10 × 4
   ...1  `_carrier_17` `_carrier_18` `_carrier_19`
   <chr>         <int>         <int>         <int>
 1 EV                0             0             0
 2 B6                0             1             0
 3 EV                0             0             0
 4 MQ                0             0             0
 5 DL                0             0             0
 6 EV                0             0             0
Ingineria caracteristicilor în R

Vizualizarea hashing-ului

Putem vizualiza matricea cu ajutorul pachetului plot.matrix.

flights_hash <- 
    as.matrix(baked)[1:50,] 

plot(flights_hash, 
     col = c("white","steelblue"), 
     key = NULL,
     border = NA)

Reprezentare grafică a unui eșantion din atribuirile hash dummy ale factorului original al companiei aeriene.

Ingineria caracteristicilor în R

Să exersăm!

Ingineria caracteristicilor în R

Preparing Video For Download...