{"id":14262,"url":"\/distributions\/14262\/click?bit=1&hash=8ff33b918bfe3f5206b0198c93dd25bdafcdc76b2eaa61d9664863bd76247e56","title":"\u041f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u0442\u0435 \u041c\u043e\u0441\u043a\u0432\u0435 \u0438\u043d\u043d\u043e\u0432\u0430\u0446\u0438\u044e \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 \u0434\u043e 1,5 \u043c\u043b\u043d \u0440\u0443\u0431\u043b\u0435\u0439","buttonText":"\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435","imageUuid":"726c984a-5b07-5c75-81f7-6664571134e6"}

Работа с данными

В процессе анализа неструктурированных данных мы проходим несколько шагов:

  1. Формулируем вопрос, на который необходимо ответить с помощью данных;
  2. Подготавливаем данные так, чтобы они отвечали на поставленный вопрос;
  3. Проводим анализ данных, т.е. получаем ответ на заданный вопрос из массива данных;
  4. Визуализируем данные;
  5. Делаем выводы.

Рассмотрим подробнее каждые этапы.

Шаг 1. Формулировка вопроса помогает: определить какие данные нужны, придерживаться выбранного направления анализа, снизить риск отклонения от поставленной цели. Ошибка, допущенная на первом этапе, может привести к потере времени и «обнулить» результат работы всей команды.

Шаг 2. Подготовка данных практически всегда является сложным и трудоемким процессом, т.к. требует извлечения данных из исходных источников, их преобразования для работы и очистки от «грязных» данных. Мы извлекаем данные с web-сайтов, социальных сетей, из готовых баз данных, CSV-файлов, таблиц Excel. Подготовленные данные должны быть правильно отформатированы, учтены все отклонения (например, чрезмерно отклоняющиеся данные).

Для работы с данными мы используем инструмент Python, а именно, некоторые методы, которые могут применять в работе не только IT специалисты, но и аудиторы, делающие только первые шаги в программировании на этом языке.

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

Для поиска пропусков в значениях (значения NaN в объекте DataFrame) мы используем библиотечный метод. isnull(). Значение «True» в наших данных после применения. isnull() означает, что в этой позиции элемент NaN.

Чтобы определить, что элемент не является пропущенным значением можно применить. notnull().

Чтобы вычислить количество NaN, мы используем метод. sum(), который принимает значение True =1, False=0.

Кроме того, можно воспользоваться методом. count(): для объекта Series метод возвращает число непропущенных значений. Для DataFrame считает количество непропущенных значений в каждом столбце.

Также для обработки пропущенных данных мы используем простое их удаление из нашей выборки. В библиотеке Pandas есть для этого несколько методов. Один из них — это фильтрация по условию с использование результатов ранее примененных. isnull() и. notnull(). Например, чтобы отобрать в столбце 3 нашей DataFrame (df) непропущенные значения используем код: df.c3[df.c3.notnull()], который извлечет все значения столбца 3, кроме NaN. Кроме того, мы используем метод. dropna(), который удаляет из объекта DataFrame строки, содержащие значения NaN. Для удаления только строк, в которых все значения неопределенны, используем параметр how = ‘all’: df.dropna(how=’all’). C помощью параметра how = ‘any’, удаляем столбцы, где есть хотя бы одно значение NaN. А с помощью параметра thresh задаем необходимый минимум заполненных значений, для того чтобы не удалять строки столбцы, в которых есть пропуски.

В некоторых случаях пропущенные значения мы заполняем определенным значением, используя метод. fillna(). Пропущенные значения можно заполнить константой, или последним непропущенным значением как в прямом:. fillna(method = «ffill”), так и обратном порядке:. fillna(method = ‘bfill»). Или заполняем с помощью индексов: fill_values. Кроме того, мы применяем метод интерполяции пропущенных значений. interpolate().

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

Каждый из этих инструментов мы используем в следующих случаях:

— метод классификации, если нами заранее определено в какие группы будем объединять данные (ответы «да»/«нет»);

— метод кластеризации, когда группы заранее неизвестны. Например, будем делать оценку возрастной категории клиента, давшего тот или иной ответ;

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

Шаг 4. Переходя к визуализации данных, мы используем «две стороны одной монеты»: с одной стороны, мы визуализируем данные, чтобы изучить их, а с другой представить окружающим наши выводы и гипотезы. Визуальный анализ на этапе обработки данных помогает увидеть аномалии в данных, сделать обобщения результатов, выявить тенденции поведения групп данных и проверить отвечают ли наши данные на изначально заданный вопрос. Для этого мы используем пакет Seaborn для программ Python и ggplot2, и Shiny для R.

Визуализация данных для презентации результатов окружающим осуществляется с помощью программ PowerBI и Tableau. Данный этап также совмещает в себе подготовку выводов.

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

0
Комментарии
-3 комментариев
Раскрывать всегда