map işlev ailesi

Tidyverse ile Machine Learning

Dmitriy (Dima) Gorenshteyn

Lead Data Scientist, Memorial Sloan Kettering Cancer Center

Liste Sütunu İş Akışı

Tidyverse ile Machine Learning

Liste Sütunu İş Akışı

Tidyverse ile Machine Learning

map işlevi

Tidyverse ile Machine Learning

map işlevi

Tidyverse ile Machine Learning

map işlevi

Tidyverse ile Machine Learning

Ülkeye göre nüfus ortalaması

mean(nested$data[[1]]$population)
[1] 23129438
Tidyverse ile Machine Learning

Ülkeye göre nüfus ortalaması

map(.x = nested$data, .f = ~mean(.x$population))
[[1]]
[1] 23129438

[[2]]
[1] 30783053

[[3]]
[1] 16074837

[[4]]
[1] 7746272
Tidyverse ile Machine Learning

2: Liste Sütunlarıyla Çalışın - map() ve mutate()

pop_df <- nested %>% 
  mutate(pop_mean = map(data, ~mean(.x$population)))

pop_df
# A tibble: 77 x 3
   country    data              pop_mean 
   <fct>      <list>            <list>   
 1 Algeria    <tibble [52 × 6]> <dbl [1]>
 2 Argentina  <tibble [52 × 6]> <dbl [1]>
 3 Australia  <tibble [52 × 6]> <dbl [1]>
 4 Austria    <tibble [52 × 6]> <dbl [1]>
 5 Bangladesh <tibble [52 × 6]> <dbl [1]>
Tidyverse ile Machine Learning

3: Liste Sütunlarını Basitleştirin - unnest()

pop_df %>% 
  unnest(pop_mean)
# A tibble: 77 x 3
   country    data               pop_mean
   <fct>      <list>                <dbl>
 1 Algeria    <tibble [52 × 6]>  23129438
 2 Argentina  <tibble [52 × 6]>  30783053
 3 Australia  <tibble [52 × 6]>  16074837
 4 Austria    <tibble [52 × 6]>   7746272
 5 Bangladesh <tibble [52 × 6]>  97649407
Tidyverse ile Machine Learning

Liste Sütunu İş Akışı

Tidyverse ile Machine Learning

map_*() ile Liste Sütunları: Çalıştırın + Basitleştirin

function returns
map() list
map_dbl() double
map_lgl() logical
map_chr() character
map_int() integer
Tidyverse ile Machine Learning

map_dbl() ile Liste Sütunları: Çalıştırın + Basitleştirin

nested %>% 
  mutate(pop_mean = map_dbl(data, ~mean(.x$population)))
# A tibble: 77 x 3
   country    data               pop_mean
   <fct>      <list>                <dbl>
 1 Algeria    <tibble [52 × 6]>  23129438
 2 Argentina  <tibble [52 × 6]>  30783053
 3 Australia  <tibble [52 × 6]>  16074837
 4 Austria    <tibble [52 × 6]>   7746272
 5 Bangladesh <tibble [52 × 6]>  97649407
Tidyverse ile Machine Learning

map() ile modeller kurun

nested %>%
   mutate(model = map(data, ~lm(formula = population~fertility, 
             data = .x)))
# A tibble: 77 x 3
   country    data              model   
   <fct>      <list>            <list>  
 1 Algeria    <tibble [52 × 6]> <S3: lm>
 2 Argentina  <tibble [52 × 6]> <S3: lm>
 3 Australia  <tibble [52 × 6]> <S3: lm>
 4 Austria    <tibble [52 × 6]> <S3: lm>
 5 Bangladesh <tibble [52 × 6]> <S3: lm>
Tidyverse ile Machine Learning

Haydi bir şeyler map edelim!

Tidyverse ile Machine Learning

Preparing Video For Download...