Анализ данных без навыков программирования

Продолжу цикл статей про анализ данных. Первые две части:

В этой публикации основное внимание будет уделено инструментам анализа, в которых можно «без Python». Нередко такой подход оправдывает себя, особенно если процесс обработки данных является одноразовым, а не периодическим.

Google Trends

Этап 1. Сбор данных

Первоначальным шагом многих дата-исследований является сбор данных. Прежде чем перейти к описанию инструментария, важное замечание: до того, как применять автоматические средства сбора данных, необходимо ознакомиться с правилами пользования материалами сайта. В некоторых случаях в правилах прямым текстом указано, что парсинг данных без согласия с администрацией и/или использования сервисов API запрещен. В качестве санкций могут заблокировать личный аккаунт (что неприятно), или IP-адрес (в том числе целую подсеть, тогда доступа к ресурсу ещё лишатся ваши коллеги).

Так, например, в Правилах пользования Российской научной электронной библиотеки eLIBRARY.ru написано:

Информация, представленная на сетевом ресурсе НАУЧНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА, не может прямо или косвенно использоваться для значительного по масштабам или систематического копирования (копирования программами-роботами), воспроизведения, систематического снабжения или распространения в любой форме любому лицу без предварительного письменного разрешения Общества НАУЧНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА. Посетителям и пользователям не разрешается изменять, распространять, публиковать материалы сайта для общественных или коммерческих целей. В случае нарушения этих правил НАУЧНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА оставляет за собой право заблокировать ip-адрес компьютера пользователя.

Разузнав про все ограничения, можно приступать к сбору данных. Наиболее подходящий инструмент в рамках темы текущей статьи — это браузерное расширение Web Scraper. В описании расширения так и написано: «… Python, php, JS не нужен».

No software to download, no Python/php/JS needed.

Алгоритм работы простой: после установки расширения на базе браузера Chrome необходимо выбрать нужные блоки на странице сайта и задать порядок обхода. Получившийся результат можно выгрузить в в табличном виде CSV и работать с ним далее.

Подробная видеоинструкция представлена на официальном сайте:

* Для программистов

Python. Советую смотреть в сторону библиотек lxml и BeautifulSoup.

PHP. Используйте Selenium WebDriver.

Этап 2. Подготовка (и очистка) данных

Полученные «сырые» данные, как правило, нуждаются в обработке. В качестве примера приведу следующие обозначения одного и того же объекта, однако в различных для машины вариантах:

  • География: «Санкт-Петербург», «г. Санкт-Петербург», «город Санкт-Петербург», «СПб», «Питер», «С. Петербург» и др.
  • Название предприятий: «Яндекс», «ООО “ЯНДЕКС”», «Yandex» и др.
  • Даты: «24 апреля 2020», «24.04.2020», «24 апр. 20» и др.

То же самое касается имен, показателей, обозначений, единиц измерения и пр. Так, например, проект Центра, связанный с анализом российских инженеров полученных из ВКонтакте, показал, что количество различных наименований для инженерных профессий исчисляется сотнями. Ниже представлены варианты наименования должности «инженер-сметчик»:

Инженер-сметчик по профилям ВКонтакте

Для нормализации данных я рекомендую использовать Open Refine, раннее известный как Google Refine.

Основная задача платформы — помочь исследователям привести данные в порядок. То есть в загруженном CSV в вашем распоряжении имеется несколько удобных возможностей:

  • унификация однотипных значений;
  • поиск и заполнение пропусков, пустых значений;
  • разбиение данных на несколько колонок (типовая задача — разделить колонку полного адреса, например «191187, Санкт-Петербург, Гагаринская ул., д. 6/1» на составляющие: индекс («191187»), город («Санкт-Петербург»), улица и дом («Гагаринская ул., д. 6/1»);
  • обратная предыдущему пункту операция — объединение данных в одну колонку;
  • отправка настраиваемых http-запросов для получения дополнительных данных.

Более подробно опишу последний пункт. Благодаря отправке запросов данные можно дополнительно стандартизировать. Для этого необходимо сформировать запрос на удаленный сервер и сохранить полученный ответ, например — в отдельную колонку. Среди русскоязычных сервисов стандартизации могу выделить DaData.ru, которые работают с большим количеством кейсов, сильно выходя за пределы типовых.

Главное преимущество Open Refine, на мой субъективный взгляд, его интерфейсная простота. Так, Excel сложнее чем Open Refine.

Подробная видеоинструкция также доступна на официальном сайте:

Кроме того, не могу не поделиться русскоязычным руководством Алексея Сидоренко (Теплица Социальных Технологий):

* Для программистов

Абсолютно не заменимый Pandas.

Этап 3. Продвинутый анализ

Статистика и ML

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

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

Более полное представление об инструменте дает ознакомительная статья на Habr.ru: RapidMiner — Data Mining и BigData у вас дома, быстро и без подготовки (почти):

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

Сетевой анализ

Другой метод представления данных состоит в применении метода сетевого анализа. Основная особенность –– это выделение сущностей (узлов) и связей (ребер) между ними для построения графа.

Иногда объекты для сетевого анализа не лежат на поверхности, как, например, кейс с построением социального графа друзей ВКонтаке.

Сетевой социальный граф. Источник

В одном из проектов по анализу новостных публикаций в качестве узлов графа мы использовали издания СМИ, а связи между ними считались на основе упоминаемости ими различных медиа-персон. Подробнее об исследовании можно почитать тут.

Для работы с сетевыми графами советую использовать Gephi. Загрузив набор данных, можно выбрать узлы и произвести некоторые расчеты коэффициентов связи и отразить граф.

* Для программистов

Тоже советую Gephi :) Ничего лучшего для работы с графами мне найти не удалось.

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

--

--