22 января 2017

Особенности работы с функцией train() из пакета caret



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

Как обсуждалось нами ранее, пакет caret (сокращение от Classification and Regression Training) был разработан как эффективная надстройка, позволяющая унифицировать и интегрировать использование множества различных функций и методов построения предсказательных моделей, реализованных в других пакетах R. При этом происходит всестороннее тестирование и оптимизация настраиваемых параметров и гиперпараметров (tuning parameters) моделей. Разработанная единая технология настройки моделей основана на использовании полуавтоматических интеллектуальных подходов и ряда широко применяемых критериев качества, рассчитываемых с применением алгоритмов создания повторных выборок (resampling).



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). В данном сообщения попробуем в сжатой форме дать сводку методов и критериев верификации регрессионных моделей и подвести некоторые итоги того, что было частично рассмотрено ранее.