Уроки по R, науке о данных и привлечению аудитории от SatRDays London

В прошлом месяце я сделал то, чего никогда раньше не делал. Я присутствовал на личном мероприятии, посвященном науке о данных, в частности, о том, как заниматься наукой о данных на языке программирования R.

Конференции для меня не новость. Как исследователь в области психологии, я участвовал и выступал на многих конференциях в своей области. Но, несмотря на то, что я был давним энтузиастом R, у меня никогда не было возможности посетить неакадемическую конференцию по анализу данных. Итак, когда у меня появилась возможность посетить SatRDays London, однодневное мероприятие, посвященное R, я с головой ушел в него.

Это было отличное решение. Я многое узнал о R и его использовании во многих отраслях, о некоторых из которых я даже никогда раньше не слышал. Мне также удалось поговорить со многими другими людьми, которые так же увлечены R, как и я, что было настоящим удовольствием.

Вот пять самых важных вещей, которые я усвоил на SatRDays.

1. R имеет больше применений, чем я когда-либо думал

Думаете, вы знаете все, на что способен R? Подумайте еще раз.

Иногда я слышу, как специалисты по обработке данных списывают R со счетов как специализированный язык, который можно использовать лишь в нескольких случаях. Они говорят, что если вы не занимаетесь биоинформатикой, академическими исследованиями или серьезной статистикой, никто в вашей области не использует R. Python — это язык общего назначения, «делающий все», который вам следует использовать вместо него.

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

Спектр выступлений на SatRDays был невероятным. Все докладчики были из разных компаний и рассказывали о новых и интересных способах использования R для анализа данных в своей отрасли.

Я слушал дата-журналистов, финансовых аудиторов, интернет-аналитиков, специалистов по качеству воздуха и многих других, которые делились своим опытом работы с R. Как ученый, половина этих секторов даже не была в моем поле зрения до конференции. Услышав от этих людей, я открыл глаза на множество применений R в различных бизнес-контекстах.

Конечно, вакансий R не так много, как вакансий Python. Но пусть никто не говорит вам, что вы загоняете себя в угол, изучая R. Становится ясно, что все больше и больше компаний перенимают его, и есть много новых вариантов использования, которые вызывают восторг.

2. Хороший код R отделяет вычисления от действий

Это совет, который я почерпнул из выступления Расса Хайда о хороших практиках кодирования. Это может быть знакомо более опытным разработчикам, но для меня это было ново и полезно.

При программировании часто бывает лучше разделить код на определяемые пользователем функции. Это помогает избежать повторения в ваших сценариях и гарантирует, что ваш код можно будет использовать повторно и его легко поддерживать. Но некоторые способы разделения кода на разные функции лучше других.

Например, рассмотрим короткий сценарий, который считывает некоторые данные, очищает их, а затем записывает в новый файл. Этот сценарий состоит из множества шагов, но мы можем разделить каждый из них на две категории: расчеты и действия.

read_csv("sales_data.csv") %>%
  select(date, transaction_id, category, item_price) %>%
  filter(date == "2023-05-10") %>%
  group_by(category) %>%
  summarise(day_turnover = sum(item_price)) %>%
  write_csv("sales_summaries/day_turnover_2023-05-10.csv")

Вычисления — это шаги, которые каждый раз будут возвращать один и тот же результат при заданных входных данных. Хорошими примерами этого являются такие операции, как фильтрация наборов данных и вычисление сводной статистики. Поскольку они возвращают предсказуемые результаты без каких-либо побочных эффектов, легко написать автоматические тесты, чтобы убедиться, что они работают правильно.

Для сравнения, действия гораздо труднее проверить. У них есть побочные эффекты, такие как запись данных в файл, который сложнее содержать. На них также может влиять RNG или другие переменные в глобальной среде. Это усложняет их тестирование, часто требуя фиктивных файлов или контролируемой среды.

Совет таков: по возможности отделяйте действия от вычислений.

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

calculate_turnover <- function(sales_data, day) {
  sales_data %>%
    select(date, transaction_id, category, item_price) %>%
    filter(date == day) %>%
    group_by(category) %>%
    summarise(day_turnover = sum(item_price))
}

action_turnover <- function(day) {
  read_csv("sales_data.csv") %>%
    calculate_turnover(day) %>%
    write_csv(paste0("sales_summarise/day_turnover_", day, ".csv"))
}

action_turnover("2023-05-10")

Это делает код аккуратным, разделенным на части. Тестирование вычислений очень просто, так как они убраны от любых побочных эффектов действий. Это разделение также облегчает проверку моих действий.

«О да, они постоянно так делают и в геймдеве», — ответил один из моих коллег, когда я рассказал ему об этом подходе. Если у вас есть опыт разработки программного обеспечения, вы, вероятно, уже знаете об этом. Но люди в индустрии данных приезжают из самых разных мест и иногда никогда не учатся таким трюкам. Хотя я научился некоторым хорошим принципам кодирования, это было для меня новым, и я буду использовать его в будущем.

3. Тщательное тестирование необходимо и ожидаемо

Говоря о тестировании, это была общая тема всей конференции.

В одном из выступлений Вяры Апостоловой и Лауры Коул из Государственного контроля большое внимание было уделено тестам и проверкам. Их работа заключается в том, чтобы брать важные правительственные модели и воспроизводить их в R. Попутно они тщательно проверяют каждое предположение в каждой модели, проверяя наличие ошибок и несоответствий.

Это может занять годы от начала до конца. Но эта кропотливая работа жизненно важна для выявления дорогостоящих ошибок. Они показали, что их работа сэкономила миллионы фунтов стерлингов от ненужных расходов, вызванных ошибками в финансовых моделях. Все потому, что они тестируют, проверяют и оценивают все, что они кодируют, в рамках строгой структуры.

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

Хотя R встроен в наше академическое обучение и практику на моем рабочем месте, тестирование сильно недооценивается. Со стороны SatRDays заставил меня осознать, насколько важно для специалистов по данным иметь надежные автоматизированные процедуры проверки своей работы.

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

4. Изучение R может быть забавным

Я уже писал ранее о том, каким забавным может быть изучение R. Но я никогда не смеялся вслух над докладом о науке о данных до SatRDays.

Если бы мне нужно было выбрать любимое выступление за весь день, это была бы Приятели Тидиверса Эндрю Кольера. В этой презентации Эндрю рассказал о некоторых менее известных функциях tidyverse и о том, как они дополняют более часто используемые функции.

Объяснить, как работает код, в ходе выступления — непростая задача. Вы ходите по канату, балансируя между информативностью и тем, чтобы не потерять аудиторию из-за технических деталей. Все выступления на SatRDays достигли такого баланса, но Эндрю сделал это с выдающимся юмором и стилем.

Его выступление было приправлено отсылками к поп-культуре и шутками, которые идеально соответствовали вкусу аудитории. Помимо того, что они были забавными, они работали, чтобы связать новые концепции с информацией, уже известной аудитории.

Использование юмора в презентации означает выставить себя напоказ. Посмеяться над аудиторией — это уникальный теплый и полезный опыт. Чувство, которое вы испытываете, когда ваши шутки эхом разносятся по тихой комнате, совершенно противоположное. Таковы взлеты и падения представления.

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

5. Сообщество R — единственное в своем роде

Сообщество R удивительно.

Этот пункт не должен стать неожиданностью для тех, кто хорошо меня знает. Я поощряю участие сообщества при изучении R и даже при выборе программных пакетов для использования.



Но я никогда раньше не занимал то же место, что и многие пользователи и профессионалы R. В начале дня я никого не знал, поэтому рассчитывал найти хотя бы пару приятных людей, с которыми можно было бы поговорить. Я немного нервничал, если честно.

Мне не стоило волноваться. Все, с кем я встречался, были дружелюбны, доступны и интересны в общении. Я не экстраверт и не любитель нетворкинга, но в итоге я оставался на ногах и болтал с людьми во время всех перерывов. Я точно знаю, что это вовсе не данность — я уже несколько раз обедал в одиночестве без компании, так что здесь я был этому особенно рад.

Сообщество R также диверсифицируется. Элла Кэй и Хизер Тернер рассказали о своей текущей работе по привлечению членов недостаточно представленных групп к поддержке языка R. Прямо сейчас большинство основных авторов языка — это западные мужчины, приближающиеся к концу своей карьеры. Чтобы R продолжал работать и развиваться в ногу со временем, важно передать эстафету более разнообразному набору участников со всего мира. Элла и Хизер поделились различными инициативами и мероприятиями, которые они организуют, чтобы это произошло, и все это звучало как многообещающие шаги вперед.

Мне было приятно видеть, как это разнообразие отражается в аудитории. Хотя я считал себя среди многих других белых мужчин в очках, присутствовавших на мероприятии, было много других людей разного пола, с разным характером и происхождением. У меня было ощущение, что все были включены и что организаторы активно способствовали этому.

Если здесь и есть мораль, так это то, что вы не должны бояться общаться с людьми, особенно в сообществе R. Они могут дать вам бесценную информацию о рабочих местах, компаниях и технологиях, которые могут продвинуть вашу карьеру. И, по крайней мере, по моему опыту, они действительно хороши.

Поездка на мероприятие R была отличным опытом, и я надеюсь сделать это снова когда-нибудь. Я узнал не только о своем любимом языке, но и о людях и отраслях, которые его используют. Можно с уверенностью сказать, что в ближайшие месяцы я многое возьму из SatRDays и буду действовать на основе своих новых знаний.

Если вы будете что-то делать после прочтения этой статьи, найдите несколько мероприятий, посвященных вашим любимым технологиям обработки данных, и посмотрите, сможете ли вы посетить одно из них. Jumping Rivers, компания, организовавшая SatRDays, подготовила список R-мероприятий, на которые стоит обратить внимание. Другие группы, такие как RLadies, также часто проводят личные встречи по всему миру.

Посещение нового мероприятия может быть пугающим, но если оно имеет отношение к вам и вашим интересам, оно, скорее всего, окупится.

Хотите получать все мои статьи о программировании на R, науке о данных и многом другом прямо на вашу почту? Подпишитесь здесь.

Чтобы получить полный доступ ко всем моим историям на Medium, зарегистрируйтесь по этой ссылке.