08 января 2017

Обзор интересных R-пакетов за декабрь 2016 г.



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

  • aws.ses - R-клиент для работы с сервисом AWS Simple Email Service.
  • censys - R-клиент для поискового сервиса Censys.
  • clustRcompaR - пакет для выполнения кластеризации документов (например, для обнаружения групп документов, схожих по своей тематике). Позволяет автоматически выделять оптимальное число кластеров и оценивать качество получаемых решений путем сравнения с документами, чья групповая принадлежность известна.
  • ggmosaic - пакет для создания мозаичных диаграмм в стиле ggplot2.
  • gofastr - пакет для быстрого формирования терм-документных матриц.
  • lexicon - набор лексических таблиц, тематических списков слов и словарей (например, наиболее часто встречающиеся имена и фамилии в США, коллекция эмотиконов, список распространенных сокращений и др.). Может оказаться полезным при выполнении анализа текстовых данных.
  • nanotime - пакет для работы с метками времени с разрешением на уровне наносекунд.
  • rtrie - набор функций для визуализации префиксных деревьев (англ. trie). Подобные структуры данных широко используются для решения задач, связанных с выполнением быстрого поиска, автокоррекцией слов, рекомендацией следующего слова в предложении и др.
  • skeletor - создание "скелета" будущего пакета для R. В отличие от стандартных утилит (базовая R-функция package.skeleton() или create() из пакета devtools), skeletor создает "болванки" с более богатым (и полезным) содержимым.
  • textTinyR - набор функций для выполнения анализа текстовых данных большого объема (создание словарей, терм-документных матриц, подсчет частоты встречаемости слов и т.п. типичные задачи). Обработка выполняется по частям, что позволяет анализировать данные, объем которых превышает имеющийся объем памяти. Примеры можно найти в блоге автора.

04 января 2017

Заполнение пропущенных значений в данных



Автор: Владимир Шитиков

К сожалению, на практике в ходе сбора данных далеко не всегда удается получить полностью укомплектованные их наборы. Пропуски отдельных значений являются повсеместным явлением и поэтому, прежде чем начать применять статистические методы, обрабатываемые данные следует привести к "каноническому" виду. Для этого необходимо, либо удалить фрагменты объектов с недостающими элементами, либо заменить имеющиеся пропуски на некоторые разумные значения.


29 декабря 2016

Пять наиболее важных событий в мире R по итогам 2016 г.



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

Рисунок заимствован с сайта
https://www.r-consortium.org
Традиционно попытаюсь подвести итоги 2016 г., перечислив пять наиболее важных (на мой взгляд) событий и тенденций, имевших место в этом году в мире R. Если упустил что-то интересное, пожалуйста, сообщите об этом в комментариях.
  • IDE RStudio v1.0. В ноябре компания RStudio объявила о выходе новой версии (1.0) их одноименного IDE для R. Это был 10-й крупный релиз этого продукта, начиная с февраля 2011 г. В состав RStudio v1.0 вошло большое количество нововведений, среди которых стоит отметить следующие:
    • работа с R Notebooks - инструментом для интерактивного исполнения R-кода и одновременного документирования получаемых результатов;
    • интеграция с функционалом пакета sparkyr (см. ниже);
    • интеграция с функционалом пакета profvis, предназначенного для выполнения профилирования R-кода;
    • улучшенные средства импорта данных (на основе пакетов readr, readxl и haven); 
    • возможность создавать несложные веб-сайты и документы размером с книгу при помощи языка разметки R Markdown.
  • Создание пакета sparklyr. Apache Spark - это чрезвычайно популярный инструмент для выполнения вычислений над "большими данными". Разработанный компанией RStudio пакет sparklyr представляет собой R-интерфейс для работы с этим инструментом. Важными особенностями sparklyr (в отличие от, например, встроенного в Spark пакета sparkR) являются следующие:
    • возможность написания легко читаемого кода с использованием синтаксиса, принятого в пакете dplyr;
    • пользователи R могут работать с большинством алгоритмов машинного обучения, реализованных в Spark'овской библиотеке MLlib;
    • как было отмечено выше, sparklyr интегрирован в RStudio v1.0, что делает работу с ним еще удобнее.
  • Релиз платформы Steam. Компания h20.ai выпустила Steam (под лицензией AGPL) - платформу, которая позволяет "...от начала и до конца выстроить весь процесс создания и разворачивания "умных" приложений". Если говорить "немаркетинговым" языком, то эта платформа помогает наладить совместную работу аналитиков, разрабатывающих предсказательные модели на базе движка h2o (поддерживаются такие языки программирования, как R, Python и Java), и разработчиков приложений (последние "потребляют" предсказания моделей посредством запросов к соответствующим API, которые можно легко опубликовать с помощью Steam). Выстраивание подобной связи между аналитиками и разработчиками эффективным образом - большая головная боль многих компаний, которые пытаются внедрять предсказательные модели в свои бизнес-процессы. В этом смысле Steam - платформа с большим потенциалом, особенно если учесть, что в состав h2o входят одни из наиболее эффективных алгоритмов машинного обучения среди существующих. Подробнее о Steam можно узнать из официальной документации, а также из приведенного ниже видео.



С наступающим Новым Годом! Добра и мира вам и вашим близким!

18 декабря 2016

Методы и критерии верификации регрессионных моделей



Автор: Владимир Шитиков

В предыдущих сообщениях неоднократно поднимались важные проблемы, связанные с диагностикой регрессионных моделей: проверка статистических допущений, лежащих в основе используемого метода построения модели, оценка адекватности структуры систематической части модели, тестирование чувствительности модели к аномалиям в структуре исходных данных и др. (см. часть 1, часть 2, часть 3). В данном сообщения попробуем в сжатой форме дать сводку методов и критериев верификации регрессионных моделей и подвести некоторые итоги того, что было частично рассмотрено ранее.




10 декабря 2016

Обзор R-пакетов за ноябрь 2016 г.



Автор рисунка: Xiao Nan
По состоянию на 10 декабря 2016 г. на сайте CRAN было опубликовано около 12 тысяч пакетов для R. Такое разнообразие приложений, наряду с очень активным сообществом пользователей, является уникальным преимуществом R, по сравнению с другими языками и системами, предназначенными для анализа данных. В то же время становится все труднее находить пакеты, подходящие для решения тех или иных задач. Эта проблема особенно актуальна среди пользователей, недотостаточно владеющих английским языком. Чтобы как-то помочь таким пользователям, я буду периодически делать небольшие обзоры наиболее интересных пакетов, опубликованных или обновленных примерно за последний месяц (ниже представлен обзор для ноябрь - начало декабря 2016 г.). Безусловно, эти обзоры будут в значительной мере отражать мое собственное представление о том, что является интересным. Поэтому если я что-то упустил, сообщайте об этом в комментариях. 
  • anytime - мощный инструмент для работы с любыми форматами дат.
  • Несколько утилит от Томаса Липера (Thomas Leeper) для работы с Amazon Web Services:
  • bayesplot - набор функций для визуализации апостериорных распределений параметров моделей и диагностики качества моделей, построенных с использованием принципов байесовской статистики. В частности, содержит функции, которые позволяют работать с моделями Stan.
  • bookdown - набор утилит для подготовки книг и технической документации с помощью R Markdown.
  • diverse - предназначен для вычисления целого ряда мер энтропии, используемых в социальных и других науках. Может оказаться особенно полезным для создания новых предикторов по имеющимся переменным при разработке предсказательных моделей.
  • fastcluster - эффективная (с точки зрения скорости вычислений) реализация иерархического кластерного анализа. Пакет одновременно содержит соответствующие функции как для R, так и для Python (см. руководство пользователя).
  • Radviz (от англ. radial coordinate visualisation) - позволяет выполнять проецирование многомерных данных на двухмерную плоскость, что, в частности, будет полезным при визуализации результатов кластерного анализа (см. руководство пользователя).
  • rex - набор функций для работы с регулярными выражениями. Стандартные возможности R для работы с регулярными выражениями трудно назвать "дружественными" для пользователя. Пакет rex решает эту проблему очень удачно (см. пример).
  • tsoutliers - функции для обнаружения выбросов при работе с временными рядами (по методу Chen & Liu, 1993).
  • Strategy - пакет для разработки и оценки эффективности торговых стратегий. Имеется возможность использовать как готовые стратегии, так и добавлять свои собственные.
Сергей Мастицкий