12 февраля 2017

Построение деревьев регрессии



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

В одном из предыдущих сообщений были определены основные понятия, преимущества и недостатки деревьев классификации и регрессии, которые являются одним из наиболее популярных методов решения многих практических задач (Breiman at al., 1984; Quinlan, 1986). По своей сути деревья используют "наивный подход" (naive approach) в том смысле, что исходят из предположения о взаимной независимости признаков. Поэтому модели регрессионных деревьев статистически наиболее работоспособны, когда мультиколлинеарность в комплексе анализируемых переменных выражена незначительно.




04 февраля 2017

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



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

Перед тем как привести обзор новых (и обновленных) R-пакетов за январь, стоит сказать о важном событии: в этом месяце общее количество пакетов в хранилище CRAN перевалило за 10000 (эта цифра не включает в себя примерно 1300 пакетов, опубликованных в хранилище BioConductor, а также сотни пакетов, доступных только в репозиториях GitHub). Наличие такого разнообразия пакетов в распоряжении пользователей R - дело, несомненно, хорошее. Однако со временем пользователям становится все сложнее ориентироваться в этом разнообразии и находить нужные пакеты. В этой связи, возможно, стоит напомнить о некоторых инструментах, которые могут оказаться полезными при выполнении соответствующего поиска:


  • Обзор пакетов для решения ряда распространенных задач, приведенный на сайте CRAN - CRAN Task Views;
  • Список популярных пакетов на сайте RDocumentation.org;
  • Список популярных пакетов, опубликованных на плафторме GitHub;
  • CRANberries - обновляющийся в реальном времени список пакетов, добавляемых в хранилище CRAN;
  • Инструмент для поиска по хранилищу CRAN, доступный на сайте MRAN (Microsoft R Application Network);
  • Shiny-приложение для поиска пакетов по категориям CRAN Task Views, созданное Михаилом Поповым;
  • Функция findFn() из пакета sos.

А теперь, собственно, сам список новых/обновленных пакетов, показавшихся мне особенно интересными:
  • fst - пакет для выполнения (сверх-)быстрой сериализации и десериализации таблиц данных R.
  • intrval - набор утилит, облегчающих разбиение количественных переменных на интервалы.
  • newsflash - R-интерфейс к GDELT Television Explorer API, с помощью которого можно выяснить, сколько раз то и или иное ключевое слово встречалось в новостях телевизионных каналов США за определенное время.
  • roxygen2 - вышла новая версия этого популярного пакета, предназначенного для написания документации в ходе разработки R-пакетов. Теперь такую документацию можно писать и в формате Markdown.
  • RPushbullet - новая версия пакета, представляющего собой R-интерфейс к Pushbullet API - сервису для обмена сообщениями между устройствами.
  • RQGIS - новая версия пакета, представляющего собой R-интерфейс к QGIS API. QGIS - это геоинформационная система с открытым кодом, в которой реализовано более 1000 различных алгоритмов обработки геоданных.
  • sparklyr - новая версия пакета, предназначенного для работы со Spark-кластерами из среды R.
  • superheat - новый пакет для построения диаграмм типа "тепловая карта" (heatmap). Имеется возмжность создавать составные рисунки (например, путем добавления к тепловой карте диаграмм рассеяния, диаграмм размахов и т.п.) и выполнять тонкую настройку их элементов.
  • tensorflow - R-интерфейс к TensorFlow - известной библиотеке от Google для создания предсказательных моделей.
  • xml2 - новая версия пакета от RStudio для работы с данными в формате XML.

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

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



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

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