03 сентября 2017

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





17 августа 2017

Классический труд по глубокому обучению теперь доступен на русском языке



В издательстве ДМК Пресс вышла книга Я. Гудфеллоу и др. "Глубокое обучение", которая представляет собой один из наиболее полных и широко цитируемых трудов по этой (очень "горячей" сегодня) теме. В аннотации к книге говорится следующее:

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

Книга содержит математические и концептуальные основы линейной алгебры, теории вероятностей и теории информации, численных расчетов и машинного обучения в том объеме, который необходим для понимания материала. Описываются приемы глубокого обучения, применяемые на практике, в том числе глубокие сети прямого распространения, регуляризация, алгоритмы оптимизации, сверточные сети, моделирование последовательностей, и др. Рассматриваются такие приложения, как обработка естественных языков, распознавание речи, компьютерное зрение, онлайновые рекомендательные системы, биоинформатика и видеоигры. Наконец, описываются перспективные направления исследований: линейные факторные модели, автокодировщики, обучение представлений, структурные вероятностные модели, методы Монте-Карло, статистическая сумма, приближенный вывод и глубокие порождающие модели.

Издание будет полезно студентами и аспирантам, а также опытным программистам, которые хотели бы применить глубокое обучение в составе своих продуктов или платформ."

P.S.: В качестве бонусной информации: на этой неделе на платформе начался новый курс-специализация по глубокому обучению. Курс разработан и преподается известным Эндрю Нг (Andrew Ng) в рамках его нового проекта deeplearning.ai



05 августа 2017

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



  • charlatan: пакет для создания "фейковых" наборов данных, которые могут включать адреса, имена людей, географические координаты, названия должностей, и т.п.
  • colordistance: пакет для работы с изображениями. В частности, пользователи могут избирательно маскировать определенные пиксели, вычислять количественные меры сходства между несколькими изображениями по присутствующим в них цветам, находить группы сходных изображений (кластерный анализ на основе доминирующих цветов), и т.п. См. примеры здесьздесь и здесь.
  • diceR: пакет для выполнения кластерного анализа, в ходе которого одновременно используется несколько алгоритмов кластеризации. Такой подход позволяет выяснить, насколько разные алгоритмы "согласны" (проявляют "консенсус", англ. "consensus clustering") в отношении принадлежности того или иного наблюдения к определенному кластеру. См. примеры здесь.
  • ggformulaggplot2-графики, спецификация которых задается c использованием стандартного для R "формульного" синтаксиса. См. многочисленные примеры здесь.
  • parallelDist: отличный инструмент для выполнения параллельных вычислений матриц сходства/различий ("параллельная" версия базовой R-функции dist()). Реализовано большое количество стандартных метрик сходства/различий.
  • RStudioConnect теперь поддерживает функционал plumber'а - пакета, с помощью которого можно легко создавать REST API для практически любых приложений, написанных на R.
  • secreteпозволяет зашифровывать пароли, API-ключи и т.п. важные элементы, используемые в R-пакетах и приложениях.
  • SentimentAnalysis: удобный пакет для анализа тональности текстов. Содержит несколько встроенных словарей, как общих, так и тематических (например, финансы). Имеется возможность работать не только с англоязычными текстами.
  • SimMultiCorrData: набор функций для создания "искусственных" наборов данных из нескольких переменных (непрерывные, бинарные, счетные) с заданной пользователем ковариационной матрицей. Такие наборы данных, в частности, являются ключевым компонентом имитационного моделирования.
  • walker: удобный пакет для построения байесовских регрессионных моделей с динамическими коэффициентами (т.е. коэффициентами, изменяющимися во "времени").


08 июля 2017

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



  • В июне вышла новая версия R (v3.4.1) под кодовым названием "Single Candle".
  • dbplyr: этот новый пакет содержит весь код, который ранее отвечал за работу с удаленными базами данных в пакете dplyr. См. пояснения в статье Хэдли Уикхема.
  • desctable: формирование таблиц с описательными статистиками, как стандартными, так и пользовательскими. Пакет обладает простым синтаксисом в духе dplyr. См. примеры здесь.
  • dplyr: опубликована новая версия (v0.7) этого популярного пакета. С перечнем основных нововведений можно ознакомиться в блоге компании RStudio.
  • replyr: удобный dplyr-подобный пакет для работы с "большими данными" (например, с данными, обрабатываемыми на Spark-кластере). См. примеры здесь.
  • RJSplot: очередной пакет для создания интерактивных графиков и диаграмм средствами R и JavaScript. См. многочисленные примеры здесь.
  • simglm: позволяет создавать искусственные наборы данных на основе обобщенных линейных моделей с заданной пользователем структурой (включая модели со смешанными эффектами).
  • simstudy: еще один пакет для создания искусственных наборов данных с заданными пользователем свойствами. См. примеры здесь.
  • sparklyr: на платформе DataCamp появился новый обучающий курс по работе с этим пакетом.
  • tidygraph: визуализация графов и дендрограмм с использованием dplyr-подобного синтаксиса. См. примеры здесь.


05 июля 2017

Визуализация пространственно-распределенных данных с помощью пакетов ggmap и ggplot2



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

Введение

Целью многих исследований является анализ конфигурации пространственных объектов и отображение ее структуры на картосхемах. В среде R для решения этой задачи часто используют методы и функции пакетов sp, maps, RgoogleMaps и связанных с ними ресурсов. При этом для создания основного слоя карты часто применяются свободно распространяемые shape-файлы, содержащие точечные и контурные графические примитивы, соответствующие отдельным географическим пунктам или регионам (см. пример здесь и здесь). Однако, по сравнению с картами, полученными на основе специализированных геоинформационных систем, таких как ArcGIS ESRI, подобная визуализация может показаться не столь симпатичной.

Ниже рассматриваются некоторые "продвинутые" методы для быстрой визуализации пространственных данных в среде R, основанные на двух идеях: (1) формирование "на лету" статических карт необходимого качества и масштаба с использованием актуальной информации серверов GoogleMap, OpenStreetMap, Stamen Maps или CloudMade и (2) широкое использование грамматики создания графических слоев для отображения необходимой информации на основе функций пакета ggplot2 (Wickham 2009, 2016; Мастицкий 2016). В результате развития этих концепций был разработан удобный пакет R, названный ggmap (Kahle & Wickham 2013). Продемонстрируем некоторые его возможности с использованием собственных данных.



04 июня 2017

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





  • CausalImpact: великолепный инструмент от аналитиков из Google, который позволяет оценить эффект экспериментального воздействия на изменяющуюся во времени переменную при отсутствии контрольной группы.
  • defer: пакет, с помощью которого можно удобно "обернуть" несколько функций в одну высокоуровневую функцию. Вот небольшой пример:

    C <- 10
    
    f <- function(x) x*x + C
    g <- function(y) (f(y) + 10) * f(y+3)
    h <- function(z) mean(c(g(z), g(z+1), g(z+2)))
    
    wrapper <- defer(h)
    #> Found functions:
    #>   g, f
    #> variables:
    #>   C
    #> library calls:
    #>   base::mean
    
    rm(C, f, g, h)
    
    wrapper(10)
    #> [1] 29688.67
    

  • d3Tree: R-интерфейс к JavaScript-библиотеке D3 для создания "схлопывающихся" дендрограмм. См. примеры здесь.
  • MultiVarSel: реализация метода Perrot-Dockes et al. (2017) для селекции информативных предикторов для общих линейных моделей. См. примеры здесь.
  • networktools: набор функций для анализа графов (сетей). В частности, в этом пакете реализована новая метрика для оценки "влияния" (impact) отдельных узлов и ребер графа на устойчивость его структуры.
  • philentropy: позволяет вычислить 46 различных метрик сходства/расстояния между многомерными объектами. Вот список реализованных в этом пакете метрик:

    library(philentorpy)
    
    getDistMethods()
    
    ##  [1] "euclidean"         "manhattan"         "minkowski"         "chebyshev"        
    ##  [5] "sorensen"          "gower"             "soergel"           "kulczynski_d"     
    ##  [9] "canberra"          "lorentzian"        "intersection"      "non-intersection" 
    ## [13] "wavehedges"        "czekanowski"       "motyka"            "kulczynski_s"     
    ## [17] "tanimoto"          "ruzicka"           "inner_product"     "harmonic_mean"    
    ## [21] "cosine"            "hassebrook"        "jaccard"           "dice"             
    ## [25] "fidelity"          "bhattacharyya"     "hellinger"         "matusita"         
    ## [29] "squared_chord"     "squared_euclidean" "pearson"           "neyman"           
    ## [33] "squared_chi"       "prob_symm"         "divergence"        "clark"            
    ## [37] "additive_symm"     "kullback-leibler"  "jeffreys"          "k_divergence"     
    ## [41] "topsoe"            "jensen-shannon"    "jensen_difference" "taneja"           
    ## [45] "kumar-johnson"     "avg"

  • R, а также Python и F# теперь интегрированы в IDE Visual Studio, что, согласно задумке Microsoft, добавит удобства в процесс разработки "умных приложений" на основе этих языков благодаря использованию одной IDE.
  • shinymaterial: позволяет оформлять Shiny-приложения в духе "материального дизайна" (material design), предложенного Google. Подробнее см. здесь.
  • simmer: набор функций для моделирования дискретных событий.
  • Syberia: новый фреймворк для разработки предсказательных моделей средствами R и последующего внедрения этих моделей в бизнес-процессы. См. также видео доклада по Syberia, сделанного недавно на конференции R/Finance.

10 мая 2017

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



  • 21 апреля 2017 г. вышла новая версия R (v3.4.0), в которую вошло несколько изменений, связанных с увеличением скорости вычислений. Подробнее можно узнать здесь.
  • choroplethr: предназначен для создания картограмм. Кроме того, с помощью этого пакета можно выполнять соединение с несколькими удаленными источниками картографических данных.
  • cronR: позволяет задавать расписание выполнения R-скриптов на Unix/Linux машинах. Есть и аналогичный пакет для Windows-машин - taskscheduleR (см. примеры здесь).
  • errors: в физике и других научных дисциплинах любое измерение всегда сопровождается определенной погрешностью. В R одновременно работать с результатами подобных измерений и их погрешностями не трудно, но утомительно. Новый пакет errors предлагает удобное решение для работы с такими данными.
  • HIBPwned: R-интерфейс к API сервиса "Have I Been Pwned?". С помощью этого сервиса можно выяснить, находится ли тот или иной адрес электронной почты в списках адресов, учетные данные которых стали по тем или иным причинам публично доступными.
  • kerasR: R-интерфейс к популярной Python-библиотеке для "глубинного обученияKeras. См. примеры здесь.
  • Компания Microsoft объявила о выпуске новой версии Microsoft R Server (v9.1).
  • modeleval: набор утилит для анализа качества предсказательных моделей, построенных с помощью пакета caret.
  • readxl: как следует из названия, этот пакет предназначен для организации удобной работы с файлами Excel из среды R.
  • RInside: с помощью этого пакета можно встраивать функционал R в приложения, написанные на C++.
  • Sinew: позволяет автоматически создать "скелет" справочного файла для той или иной функции в формате roxygen2, что значительно сэкономит время при разработке новых пакетов для R.
  • shinyWidgets: набор дополнительных виджетов для разработки Shiny-приложений.
  • shinyjqui: с помощью этого пакета можно добавлять jQuery UI-элементы в Shiny-приложения. Примеры приведены здесь и здесь.
  • Исправлены небольшие ошибки в популярном пакете quantmod, предназначенном для разработки трейдинговых моделей.


30 апреля 2017

Делимся опытом: визуализация данных из лог-файлов



Сегодня в рамках рубрики "Делимся опытом" мы представляем вашему вниманию небольшую заметку Дмитрия Берга, в которой он рассказывает о визуализации данных из лог-файлов средствами сервиса plot.ly.




07 апреля 2017

Новая книга по R: "Классификация, регрессия и другие алгоритмы Data Mining с использованием R"



Друзья!

Владимир Кириллович и я рады представить вашему вниманию новый результат нашей совместной работы - книгу "Классификация, регрессия и другие алгоритмы Data Mining с использованием R".

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

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

Книга может быть использована в качестве учебного пособия по статистическим методам для студентов и аспирантов высших учебных заведений.

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


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

Мы будем благодарны за любые ваши замечания и пожелания касательно этой работы - отправляйте их, пожалуйста, по электронной почте stok1946["собака"]gmail.com и/или rtutorialsbook["собака"]gmail.com

Сергей Мастицкий, Владимир Шитиков



P.S.: Как отмечено выше, книга распространяется бесплатно. Однако если она окажется вам полезной и вы сочтете уместным отблагодарить авторов за их работу, вы можете перечислить любую сумму, воспользовавшись следующей кнопкой (все транзакции выполняются в безопасном режиме через систему электронных платежей PayPal; наличие у вас аккаунта в этой системе необязательно):



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

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



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

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