Как стать автором
Поиск
Написать публикацию
Обновить
6.65

R *

Язык для статистической обработки данных

Сначала показывать
Порог рейтинга
Уровень сложности

Умирает ли RuTracker? Анализируем раздачи

Время на прочтение14 мин
Количество просмотров237K

Любая деятельность генерирует данные. Чем бы вы ни занимались, у вас наверняка на руках кладезь необработаной полезной информации, ну или хотя бы доступ к его источнику.


Сегодня побеждает тот, кто принимает решения, основываясь на объективных данных. Навыки аналитика как никогда актуальны, а наличие под рукой необходимых для этого инструментов позволяет всегда быть на шаг впереди. Это и является подспорьем появления данной статьи.


У вас есть свой бизнес? Или может… хотя, не важно. Сам процесс добычи данных бесконечен и увлекателен. И даже просто хорошо покопавшись в интернете можно найти себе поле для деятельности.


Вот, что мы имеем сегодня – Неофициальная XML-база раздач сайта RuTracker.ORG. База обновляется раз в полгода и содержит в себе информацию о всех раздачах за историю существования данного торрент-трекера.


Что она может рассказать владельцам рутрекера? А непосредственным пособникам пиратства в интернете? Или обычному юзеру, увлекающемуся аниме, например?

Читать дальше →

COVID-19: как перестать читать новости и начать анализировать данные

Время на прочтение12 мин
Количество просмотров9.1K

image


Привет, Хабр! Где-то месяц назад у меня появилось чувство постоянного беспокойства. Я стал плохо есть, еще хуже спать и постоянно читать-смотреть-слушать тонну новостей о пандемии. Исходя из них коронавирус то ли захватывал, то ли освобождал нашу планету, являлся то ли заговором масонов мировых правительств, а то ли местью панголина, вирус то ли угрожал всем и сразу, а то ли персонально мне и моему коту…


Сотни статей, постов в соцсетях, youtube-telegram-instagram-tik-tok (да уж простите) контента разной степени содержательности (и сомнительности) не приводили меня ни к чему, кроме уже описанного на Хабре разрушения мозга и еще большему чувству беспокойства.


Но в один день я купил гречки решил со всем этим нужно покончить. Как можно скорее!


UPD: добавил секцию 'Результат'.

Что же ты сделал?

Машинное обучение на R: экспертные техники для прогностического анализа

Время на прочтение17 мин
Количество просмотров6.2K
imageПривет, Хаброжители! Язык R предлагает мощный набор методов машинного обучения, позволяющих быстро проводить нетривиальный анализ ваших данных. Книга является руководством, которое поможет применять методы машинного обучения в решении ежедневных задач. Бретт Ланц научит всему необходимому для анализа данных, формирования прогнозов и визуализации данных. Здесь вы найдете информацию о новых улучшенных библиотеках, советы об этических аспектах машинного обучения и проблемах предвзятости, а также познакомитесь с глубоким обучением.

В этой книге — Основы машинного обучения и особенности обучения компьютера на примерах. — Подготовка данных к использованию в машинном обучении средствами языка R. — Классификация значимости результатов. — Предсказание событий с помощью деревьев решений, правил и опорных векторов. — Прогнозирование числовых данных и оценка финансовых данных с помощью регрессионных методов. — Моделирование сложных процессов с использованием нейронных сетей – фундамент глубокого обучения. — Оценка моделей и улучшение их производительности. — Новейшие технологии для обработки больших данных, в частности R 3.6, Spark, H2O и TensorFlow.
Читать дальше →

Машинное обучение на языке R с использованием пакета mlr3

Время на прочтение16 мин
Количество просмотров9.9K

Источник: https://mlr3book.mlr-org.com/


Привет, Хабр!

В этом сообщении мы рассмотрим самый продуманный на сегодняшний день подход к машинному обучению на языке R — пакет mlr3 и экосистему вокруг него. Данный подход основан на «нормальном» ООП с использованием R6-классов и на представлении всех операций с данными и моделями в виде графа вычислений. Это позволяет создавать упорядоченные и гибкие пайплайны для задач машинного обучения, но на первых порах может показаться сложным и запутанным. Ниже постараемся внести определенную ясность и замотивировать к использованию mlr3 в ваших проектах.

Содержание:


  1. Немного истории и сравнение с конкурирующими решениями
  2. Технические детали: R6-классы и пакет data.table
  3. Основные составляющие ML-пайплайна в mlr3
  4. Настройка гиперпараметров
  5. Обзор экосистемы mlr3
  6. Пайпы и граф вычислений
Читать дальше →

Deep Q Trading: объектно-ориентированный код на R

Время на прочтение4 мин
Количество просмотров2K


Привет! Это перевод еще одной моей статьи, посвященной обучению с подкреплением (reinforcement learning). Эту итерацию даже предложили запостить в блоге Веды аналитики. :)

В двух прошлых статьях на эту тему: 1 и 2 я пробовал создать и запустить обучение с подкреплением для задачи трейдинга на синтетических и реальных данных. Тогда я опубликовал код нейронной сети, чтобы помочь вам начать ваши проекты. На этот раз я публикую весь код эксперимента, который я создал, используя язык для анализа данных R, обогащенный классами R6, чтобы упростить погружение в эту тему. Даже если ваше ежедневное программирование связано с использованием Python, Java или C, вы, вероятно, найдете ООП R6 довольно удобным. Надеюсь, вам понравится высокоуровневость кода. Заходите на мой репозиторий кода, клонируйте и запустите его!
Читать дальше →

Конкурс VK Сup. Трек ML. 4 место. Как?

Время на прочтение11 мин
Количество просмотров2.1K
image

В данном конкурсе, проводимом в рамках отборочного тура VK Сup 2020, трек ML, необходимо было предсказать долю потенциальной аудитории, которая просмотрит рекламные объявления, показываемые на нескольких рекламных площадках конкретное число раз: 1,2,3 еще и в будущем.

Это было не классическое соревнование по отправке итоговых предсказаний на известные тестовые данные, а предсказание на полностью неизвестных данных, подаваемых на модель в docker, запущенном на площадке конкурса.

В целом, такое решение уравнивает шансы участников и не позволяет тем, кто любит подглядывать в тест, обогащать им тренировочный набор данных, подгонять модель под распределение тестовых данных. Здесь все были в равных условиях, так как не понятно, что может быть в данных: “мусорные” данные, спорадические выбросы, неверные разделители и прочее. Но все эти нюансы одновременно заставляют думать и об обработке исключений.

В этом конкурсе я занял непочетное 4 место и хочу рассказать, как же это удалось.
Читать дальше →

Разворачиваем вложенные столбцы — списки с помощью языка R (пакет tidyr и функции семейства unnest)

Время на прочтение24 мин
Количество просмотров2.7K

В большинстве случаев при работе с ответом полученным от API, или с любыми другими данными которые имеют сложную древовидную структуру, вы сталкиваетесь с форматами JSON и XML.


Эти форматы имеют множество преимуществ: они достаточно компактно хранят данные и позволяют избежать излишнего дублирования информации.


Минусом данных форматов является сложность их обработки и анализа. Неструктурированные данные невозможно использовать в вычислениях и нельзя строить на их основе визуализацию.




Данная статья является логическим продолжением публикации "R пакет tidyr и его новые функции pivot_longer и pivot_wider". Она поможет вам привести неструктурированные конструкции данных к привычному, и пригодному для анализа табличному виду с помощью пакета tidyr, входящего в ядро библиотеки tidyverse, и его функций семейства unnest_*().

Читать дальше →

Вокруг data.table

Время на прочтение9 мин
Количество просмотров3.3K
Эта заметка будет интересна для тех, кто использует библиотеку обработки табличных данных для R — data.table, и, возможно, будет рад увидеть гибкость ее применения на различных примерах.

Вдохновившись хорошим примером коллеги, и надеясь, что вы уже почитали его статью, предлагаю глубже копнуть в сторону оптимизации кода и производительности на основе data.table.
Читать дальше →

Доверительный интервал для числа заболевших коронавирусом (расчёт по летальности)

Время на прочтение4 мин
Количество просмотров48K
Популярный аргумент к ставшей вирусной публикации про коронавирус — да как же можно по трём случаям какую-то статистику выводить? Нельзя делать выводы по таким маленьким выборкам! Эту историю про размеры выборок все, кто учился социальным наукам, впитали с молоком альма матери. И это правильно в тех ситуациях, с которыми мы обычно имеем дело — с выборочными статистиками.

К случаю с тремя умершими эти статистики имеют весьма опосредованное отношение. В те годы, когда я ещё преподавал матметоды для психологов в универе, я всегда пытался остановиться на этом месте — то, о чём весь этот курс, не имеет отношения к фактическим данным. Только к задаче, когда нам надо по случайной выборке сделать какой-то вывод о генеральной совокупности.

И вот перед нами число 3. Три умерших, не вектор какой-нибудь, не таблица и не выборка. Это факт. Три умерших попали к нам совершенно не случайно. Они умерли.
Читать дальше →

Какой язык выбрать для работы с данными — R или Python? Оба! Мигрируем с pandas на tidyverse и data.table и обратно

Время на прочтение19 мин
Количество просмотров17K

По запросу R или Python в интернете вы найдёте миллионы статей и километровых обсуждений по теме какой из них лучше, быстрее и удобнее для работы с данными. Но к сожалению особой пользы все эти статьи и споры не несут.



Цель этой статьи — сравнить основные приёмы обработки данных в наиболее популярных пакетах обоих языков. И помочь читателям максимально быстро овладеть тем, который они ещё не знают. Для тех кто пишет на Python узнать как выполнять всё то же самое в R, и соответственно наоборот.


В ходе статьи мы разберём синтаксис наиболее популярных пакетов на R. Это пакеты входящие в библиотеку tidyverse, а также пакет data.table. И сравним их синтаксис с pandas, наиболее популярным пакетом для анализа данных в Python.


Мы пошагово пройдём весь путь анализа данных от их загрузки до выполнения аналитических, оконных функций средствами Python и R.

Читать дальше →

Анализ популярности YouTube видео участников Евровидения 2020

Время на прочтение6 мин
Количество просмотров29K

13 марта на официальном YouTube канале Евровидения была выложена композиция группы Little Big, которая будет представлять Россию на конкурсе. Посмотрев клип, захотелось сравнивать статистику видео нашей группы, с видео других участников; какие ролики самые просматриваемые, у кого самый большой процент лайков, кого чаще всего комментируют. Гугление готовой статистики ни к чему не привело. Поэтому было решено самому собрать нужную статистику.

Читать дальше →

Применение R в задаче обновления кассового ПО

Время на прочтение2 мин
Количество просмотров1.8K

На первый взгляд, это два непересекающихся мира. Но на практике, это не так.


Ниже дан краткий локальный комментарий к хорошей статье «Не спать! Как мы научились тиражировать релизы на 12000 касс за ночь» в части системы мониторинга качества обновления ПО и применению R в этой задаче.


Является продолжением предыдущих публикаций.

Читать дальше →

Как работать с API Google Таблиц (Google Sheets API v4) на языке R с помощью нового пакета googlesheets4

Время на прочтение11 мин
Количество просмотров88K

Электронные таблицы по-прежнему остаются довольно популярным инструментом для работы с данными, а среди различных процессоров электронных таблиц наиболее популярными являются Google Таблицы. Во-первых, это бесплатный инструмент, во-вторых, функционал Google Таблиц достаточно широк, и они предоставляют вам возможность в онлайн режиме получить доступ к данным.


В этой статье мы разберёмся с тем, как на языке программирования R работать с Google Sheets API v4 с помощью пакета googlesheets4, а точнее:


  • Как пройти авторизацию для работы с Google Таблицами по API;
  • Рассмотрим основные функции пакета;
  • Разберём примеры кода для чтения данных, создания новых таблиц и выполнения других манипуляций с Google Таблицами по API.

Также эта статья поможет пользователям устаревшего пакета googlesheets мигрировать на новый googlesheets4.


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


Читать дальше →

Ближайшие события

Воспроизводимые вычисления в R. Как разделить код и данные?

Время на прочтение4 мин
Количество просмотров2.2K

Достаточно часто возникает потребность проведения периодических вычислений и подготовки консолидированного отчета по самодостаточным данным. Т.е. по данным, которые хранятся в виде файлов. Это могут быть данные, набранные из открытых источников, различные документы и excel таблицы, выгрузки из корпоративных систем. Данные в сыром виде могут занимать как несколько мегабайт, так и несколько гигабайт. Данные могут быть обезличенными, либо содержать конфиденциальную информацию. В том случае, когда код вычислений помещается в репозиторий, а работа ведется более чем одним человеком более чем на одном компьютере, возникает проблема сохранения консистентности кода и данных. При этом необходимо еще обеспечить соблюдение разных прав доступа к коду и данным. Что делать?


Является продолжением предыдущих публикаций.

Читать дальше →

Действительно простая графика в R для науки и публицистики

Время на прочтение11 мин
Количество просмотров23K

R — очень мощный инструмент для работы со статистикой: от предварительной обработки до построения моделей любой сложности и соответствующей графики.


Простой гугл-запрос выдаст большое количество литературы по тому, как «легко и быстро» использовать R. Здесь будут и огромные книги, и многочисленные заметки на Stack Overflow, которые, на первый взгляд, кажутся бесконечной кладезью примеров, из которой каждый в два счета соберет необходимый код для решения конкретной задачи. Однако, на деле это совсем не так. Материалов, которые бы рассказали, например, как построить простой график «с нуля» с готовыми рецептами для решения затруднений, которые возникнут по ходу решения этой задачи, очень мало.


Для решения практических задач нужны конкретные пошаговые инструкции, а не подробное описание всей мощи того или иного пакета. Кроме того, готовые учебные примеры (те же ирисы) зачастую малополезны, поскольку сразу пропускают один из самых важных этапов работы со статистикой — предварительный сбор и обработку самих данных. А ведь именно на эту работу зачастую уходит чуть ли не бóльшая часть всего времени! Отдельной проблемой оказывается создание графиков, которые соответствуют формальным, а чаще — неформальным, — стандартам определенной профессиональной среды.


Мне и моим коллегам регулярно требуется делать всё большее количество визуализаций статистики и основанных на них моделей для публикации научных результатов. Поскольку исследования касаются экономики, многие такие работы похожи и на профессиональную публицистику.


В какой-то момент стало понятно, что для эффективной коллективной работы нужен своего рода полноценный конвейер обработки статистики. Эта статья родилась как вводное руководство для коллег и шпаргалка для самого себя, чтобы запустить этот конвейер. Думается, что этот материал может быть полезен и более широкой аудитории.

Читать дальше →

Управление портфелями опционов в R

Время на прочтение3 мин
Количество просмотров4.6K

Программ для анализа и управления портфелями опционов много. Они есть в торговых терминалах, в виде отдельных коммерческих продуктов или сервисов на сайтах. У таких программ есть ряд ограничений: портфели привязаны к торговой платформе, котировки подкачиваются из определённого источника, а рассчитать параметры или сценарии можно только предусмотренные ПО.


Задачу управления портфелями на разных рынках я решил с помощью R. Движок с открытым кодом даёт много возможностей: портфели хранятся в любой СУБД или Excel, или загружаются из терминала (QUIK, TWS, любого другого с API); котировки подкачиваются из своего источника (терминал, база данных или сайт) и доступна любая аналитика по портфелю!

Читать дальше →

R, Монте-Карло и enterprise задачи

Время на прочтение3 мин
Количество просмотров3.5K

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


  • Вариант 1 — давайте решать частную задачу в общем виде. Решив ее таким образом, мы сможем попутно много чего еще порешать.
  • Вариант 2 — давайте для предсказания поведения нелинейной системы притянем сюда прогнозы, ML и массу модных штучек. Круто ведь.

Однако не всегда применение таких подходов адекватно исходной постановке задачи.
Является продолжением предыдущих публикаций.

Читать дальше →

EDA под другим углом

Время на прочтение10 мин
Количество просмотров24K
image

Поговорим не про еду, а про разведочный анализ данных (exploratory data analysis, EDA) который является обязательной прелюдией перед любым суровым ML.

Будем честны, процесс довольно занудный, и чтобы выцепить хоть какие-то значимые инсайты про наши данные — требуется потратить достаточное количество времени активно используя любимую библиотеку визуализации.

А теперь представим что мы довольно ленивы (но любопытны) и будем следовать этому постулату всю эту статью.
Читать дальше →

Работа с датами на языке R (базовые возможности, а также пакеты lubridate и timeperiodsR)

Время на прочтение9 мин
Количество просмотров22K

Получить текущую дату в любом языке программирования, операция эквивалентная "Hello world!". Язык R не является исключением.


В этой статье мы разберёмся с тем, как устроена работа с датами в базовом синтаксисе языка R, а также рассмотрим несколько полезных пакетов, расширяющих его возможности при работе с датами:


  • lubridate — пакет позволяющий производить арифметические вычисления между датами;
  • timeperiodsR — пакет для работы с временными интервалами и их компонентами.

Читать дальше →

Несколько штрихов о работе с идентификаторами bigint в R

Время на прочтение6 мин
Количество просмотров1.3K

Каждый раз, когда начинается разговор об использовании различных БД в качестве источника данных, появляется тема идентификаторов записей, объектов или чего-либо иного. Иногда согласование протокола обмена может рассматриваться участниками несколько месяцев. int-bigint-guid, далее по кругу. Для объемных задач, с учетом того, что нативно в R нет поддержки bigint (емкость ~2^64) выбор правильного представления таких идентификаторов может оказаться критичным в части производительности. Есть ли очевидное и универсальное обходное решение? Ниже несколько практических соображений, которые могут применяться в проектах в качестве лакмусовой бумажки.


Как правило, идентификаторы будут использоваться для трех классов задач:


  • группировка;
  • фильтрация;
  • объединение.

Исходя из этого и оценим различные подходы.


Является продолжением предыдущих публикаций.

Читать дальше →

Вклад авторов