12-14 сентября в Лондоне прошла ежегодная конференция "Enterprise Applications of the R Language" (EARL) - один из наиболее значимых форумов, где пользователи R делятся своим опытом применения этой системы статистических вычислений для решения бизнес-задач.

Конференция традиционно началась с серии практических семинаров, которые в этом году были посвящены следующим темам:
  • Организация работы со Spark'ом в среде R с помощью пакета sparklyr
  • Работа с пакетом MicrosoftML
  • Веб-скрейпинг и анализ текстовых данных с помощью R
  • Работа с GitHub
  • Принципы написания функций в R
  • Введение в Shiny
В последующие два дня было представлено около 60 докладов с примерами использования R в самых разнообразных индустриях - страхование, банковское дело, маркетинг, программное обеспечение, спорт, медицина, автомобилестроение и др. Слайды этих сообщений можно найти на сайте конференции (см. раздел "Speakers"). Поделюсь некоторыми общими наблюдениями:
  • Два-три года назад было много обсуждений того, как основанные на R приложения можно запустить в производство. В этот раз таких обсуждений почти не было - то ли народ уже определился с "оптимальными" способами развертывания подобных приложений в своих организациях, то ли просто так получилось, что доклады были в основном посвящены другим темам. Одно из исключений - доклад вашего покорного слуги, в котором вместе с моим соавтором и коллегой Дмитрием Дерябиным мы привели детальный пример создания автоматизированного прогнозного приложения, написанного на R и развернутого в "облаке" Amazon с использованием целого ряда AWS-сервисов.
  • R начинают широко использовать в таких традиционно консервативных в отношении новых технологий индустриях, как банковское дело и страхование, а также в государственных организациях (во всяком случае, в Великобритании).
  • Фреймворк Shiny стал де-факто стандартом в мире R для создания интерактивных аналитических веб-приложений.

В представленных на конференции докладах было упомянуто большое количество интересных и полезных пакетов для R, на которые стоит обратить внимание, в частности: prophet, shiny.semantic, plumber, mlogit, ChoiceModelR, markovchain, keras, here, purrr, ChannelAttribution, dataCompareR.

Автор: Сергей Мастицкий

7 Комментарии

Юрий написал(а)…
Добрый день.

А по Вашему докладу будут слайды?
И спасибо Вам за отличные книги по R )
Sergey Mastitsky написал(а)…
К сожалению, политика моей компании не позволяет выкладывать слайды моего доклада в публичный доступ
Анонимный написал(а)…
Очень жаль, Сергей, буду признателен, если прокомментируете мои вопросы:
а про что примерно (прогноз чего?) был сервис?
Слайды сервиса тоже нельзя выложить?
Почему стек амазона, а не Azure, чем обусловлен был выбор?
Sergey Mastitsky написал(а)…
Если вкратце, то история такая.
Наши DevOp'ы хотели лучше понять, как пользовательская база и нагрузка на разные системы будут расти в будущем. Было выбрано несколько разных метрик для прогнозирования, характеризующих эту нагрузку (самая простая, например - дневное число активных пользователей).
Созданное нами приложение выполняет прогноз для каждой метрики на период, охватывающий 6 следующих месяцев. Поскольку свойства наших временных рядов сильно определяются крупными спортивными событиями, многие из которые имеют место только раз в год или раз в 4 года (наш продукт - это букмекерская платформа), то модели ежедневно (пере-)обучаются по довольно длительным историческим данным - на скользящем окне, охватывающем 4 последних года. В основе лежит функционал пакета prophet от Facebook (хотя первые версии моделей представляли собой трационные ARIMA-модели, подгоняемые средствами пакета forecast; но с ними было сложнее делать надежные долгосрочные прогнозы - отдельная тема...). Все расчеты выполняются в автоматическом режиме без какого-либо участия со стороны аналитиков (при условии, что ошибка той или иной модели не начинает проявлять выраженный продолжительный тренд в каком-либо направлении - в таких случаях приходится смотреть, в чем дело и подправлять структуру модели или (чаще) добавлять предикторы (индикаторные переменные); но такое если и случается, то крайне редко).
Почему приложение развернуто не в Azure? Простой ответ - потому что все, что связано с Microsoft - это много "боли" и неизбежных хаков (по крайней мере, для нашего круга задач). Более развернутый ответ - потому что 1) у Amazon'а есть много зрелых и полезных для наших целей сервисов (например, плотно используемые нами Lamba Functions и Step Functions), 2) у Amazon'a есть зрелый SDK для Python, с помощью которого мы "склеиваем" разные сервисы в одно многокомпонентное приложение, 3) возможность использования очень дешевых spot instance-машин для вычислений (так, в нашем случае, машина, которая выполняет все расчеты, обходится нам в... $0.45 в месяц), 4) в нашей команде есть сертифицированный Amazon'ом инженер и мы целенаправленно инвестируем в развитие соответствущих скилов в команде; 5) этот список можно было бы продлевать бесконечно, так что проще дать ссылку на последний обзор Gartner по этой теме: http://gtnr.it/2jbwfuX
Анонимный написал(а)…
Сергей, спасибо что делитесь такими новостями.

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

Спасибо.
Анонимный написал(а)…
Спасибо, Сергей, за столь обстоятельный ответ.
Максим написал(а)…
Добрый день, Сергей!

Надеюсь в ДМК (хорошо бы под Вашим авторством) выйдет что-нибудь по Shiny :)
Новые Старые