Одна из проблем, с которой сталкиваются новички в области науки о данных или машинного обучения, - это поиск правильного набора данных для правильного набора задач, которые вы хотите преподавать / изучать / экспериментировать. Допустим, вы хотите преподавать временные ряды, и это тот случай, когда ваш набор данных классификации спама / хамов бесполезен. И вам нужно обратиться к сообществам, которые предлагают наборы данных, такие как хорошо известное репозиторий 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, размещено с разрешения