Одна из проблем, с которой сталкиваются новички в области науки о данных или машинного обучения, - это поиск правильного набора данных для правильного набора задач, которые вы хотите преподавать / изучать / экспериментировать. Допустим, вы хотите преподавать временные ряды, и это тот случай, когда ваш набор данных классификации спама / хамов бесполезен. И вам нужно обратиться к сообществам, которые предлагают наборы данных, такие как хорошо известное репозиторий UCI ML или наборы данных Kaggle. Что, если вы хотите просто быстро создать поддельный, но значимый набор данных в своей среде?

Решение

Вот где fakir прибыл нам на помощь. fakir - это R-пакет от Колина Фея (Think-R), который так хорошо внес свой вклад в R-сообщество.

О факире

Как и в документации, цель fakir - предоставить поддельные наборы данных, которые можно использовать для обучения R.

Установка и загрузка

fakir можно установить с Github (fakir пока недоступен в CRAN)

# install.packages("devtools")
devtools::install_github("ThinkR-open/fakir")
library(fakir)

Пример использования: поток кликов / веб-данные

Clickstream / Web Data - это то, что в наши дни многие организации используют в аналитике, но получить некоторые данные о кликах сложно, поскольку ни одна компания не предпочла бы делиться своими. В тестовой учетной записи Google Analytics есть образец данных, но он может не служить вам никакой цели при изучении Data Science в экосистеме R или R.

Это типичный случай, когда fakir может вам помочь

library(tidyverse)
fakir::fake_visits() %>% head()
## # A tibble: 6 x 8
##   timestamp   year month   day  home about  blog contact
##   <date>     <dbl> <dbl> <int> <int> <int> <int>   <int>
## 1 2017-01-01  2017     1     1   352   176   521      NA
## 2 2017-01-02  2017     1     2   203   115   492      89
## 3 2017-01-03  2017     1     3   103    59   549      NA
## 4 2017-01-04  2017     1     4   484   113   633     331
## 5 2017-01-05  2017     1     5   438   138   423     227
## 6 2017-01-06  2017     1     6    NA    75   478     289

Вот как просто получить образец данных Clickstream (tidy) с fakir. Еще одна хорошая вещь, которую следует упомянуть: если вы посмотрите fake_visits() документацию, вы обнаружите, что есть аргумент, который принимает значение seed, что означает, что вы контролируете рандомизацию данных и их воспроизведение.

fake_visits(from = "2017-01-01", to = "2017-12-31", local = c("en_US", "fr_FR"), 
    seed = 2811) %>% head()
## # A tibble: 6 x 8
##   timestamp   year month   day  home about  blog contact
##   <date>     <dbl> <dbl> <int> <int> <int> <int>   <int>
## 1 2017-01-01  2017     1     1   352   176   521      NA
## 2 2017-01-02  2017     1     2   203   115   492      89
## 3 2017-01-03  2017     1     3   103    59   549      NA
## 4 2017-01-04  2017     1     4   484   113   633     331
## 5 2017-01-05  2017     1     5   438   138   423     227
## 6 2017-01-06  2017     1     6    NA    75   478     289

Пример использования: французские данные

Кроме того, в приведенном выше использовании функции fake_visits() вы могли заметить другой атрибут local, который может помочь вам выбрать French данные вместо английского. По моему личному мнению, это очень важно, если вы ставите перед собой задачу повысить грамотность данных или демократизировать науку о данных.

fake_ticket_client(vol = 10, local = "fr_FR") %>% head()
## # A tibble: 6 x 25
##   ref   num_client prenom nom   job     age region id_dpt departement
##   <chr> <chr>      <chr>  <chr> <chr> <dbl> <chr>  <chr>  <chr>      
## 1 DOSS… 31         Const… Boul… <NA>     62 Lorra… 88     Vosges     
## 2 DOSS… 79         Martin Norm… Cons…    52 Midi-… 46     Lot        
## 3 DOSS… 65         Phili… Géra… <NA>     28 Prove… 84     Vaucluse   
## 4 DOSS… 77         Simon… Cour… Plom…    29 Prove… 83     Var        
## 5 DOSS… 59         Rémy   Dela… <NA>     18 Breta… 29     Finistère  
## 6 DOSS… 141        Astrid Dumo… Ingé…    35 Midi-… 46     Lot        
## # … with 16 more variables: gestionnaire_cb <chr>, nom_complet <chr>,
## #   entry_date <dttm>, points_fidelite <dbl>, priorite_encodee <dbl>,
## #   priorite <fct>, timestamp <date>, annee <dbl>, mois <dbl>, jour <int>,
## #   pris_en_charge <chr>, pris_en_charge_code <int>, type <chr>,
## #   type_encoded <int>, etat <fct>, source_appel <fct>

В приведенном выше примере мы использовали другую функцию fake_ticket_client() fakir, которая помогает нам предоставить типичный набор данных заявки (например, тот, который вы получаете от ServiceNow или Zendesk).

Пример использования: точечная диаграмма

Если вам надоело использовать только iris набор данных для демонстрации или обучения диаграмм рассеяния, где вам нужны как минимум две непрерывные переменные, теперь мы можем преодолеть это с помощью наборов данных fakir.

fake_visits() %>% 
  ggplot() + geom_point(aes(blog,about, color = as.factor(month)))
## Warning: Removed 47 rows containing missing values (geom_point).

(Возможно, это не очень хорошая диаграмма рассеяния, чтобы показать корреляцию, но, эй, вы можете научить диаграмму рассеяния без построения длины лепестка и длины чашелистника)

Резюме

Если вы занимаетесь преподаванием или любите экспериментировать и не хотите использовать шаблонные наборы данных, fakir - это очень хороший пакет для ознакомления. Как упоминает в описании автор пакета fakir, charlatan - еще один такой R-пакет, который помогает генерировать значимые поддельные данные.

использованная литература

Если вам это понравилось, подпишитесь на мою Информационную рассылку по науке о данных и поделитесь ею со своими друзьями!

Первоначально опубликовано на сайте programmingwithr.com, размещено с разрешения