Анализ данных  •  25 ноября  2022  •  5 мин чтения

Очистка данных: кто их загрязняет и что аналитику с этим делать

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

Что такое очистка данных

Чаще всего компании собирают данные из множества разных источников. Информация получается разнородной, часто содержит ошибки, пустые значения, дубли и другие артефакты, которые помешают анализу. Это нормально — данные всегда поступают «грязными», такова их природа.

Чтобы убрать эти помехи, существует специальный процесс — очистка данных, который ещё называют data cleaning или scrubbing. Задача очистки данных — избавиться от большинства ошибок с помощью специальных инструментов и алгоритмов, сделать будущий анализ более точным.

Теоретически данные можно начать анализировать и без очистки. Однако на практике это может привести к проблемам — не соответствующим реальности графикам и отчётам или несбывающимся прогнозам. Поэтому грамотная работа с данными подразумевает их обязательную предварительную очистку.

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

Материал по теме:
Как привести данные в форму: что такое нормализация и зачем она нужна

От чего надо чистить большие данные

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

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

У Иванова Василия и Сидорова Николая один и тот же номер страховки — такого быть не может. Значит, какая-то из записей содержит ошибку.
У Иванова Василия и Сидорова Николая один и тот же номер страховки — такого быть не может. Значит, какая-то из записей содержит ошибку. Скорее всего, более поздняя, хотя это не обязательно
Противоречивые записи. В этом случае объект один, записей о нём несколько, а данные в этих записях не одинаковые. Например, указаны разные номера телефонов. Эта ошибка возникает при сборе данных из нескольких источников и требует корректировки — объединения или удаления. Иначе алгоритм либо воспримет объекты как разные, либо не сможет обработать их корректно как один.
Иванов Василий — один и тот же пользователь, но в таблицу попали разные данные о его возрасте. Одну из строк при очистке нужно будет удалить
Иванов Василий — один и тот же пользователь, но в таблицу попали разные данные о его возрасте. Одну из строк при очистке нужно будет удалить
Проблемы с признаками
Отсутствующие значения. Какого-то значения, например номера телефона или адреса клиента, в таблице просто нет — его или не ввели, или потеряли при переносе.

Недопустимые значения. Значение есть, но неправильное. Например, российский номер телефона, который начинается с цифры 9. Эта ошибка возникает, если не настроить фильтры на сборе данных.

Орфографические ошибки и опечатки. Слово введено неправильно, это искажает статистику и не позволяет фильтровать значения.

У Ивановых в этой таблице явно одна и та же профессия — но система распознает их как разные из-за опечатки
У Ивановых в этой таблице явно одна и та же профессия — но система распознает их как разные из-за опечатки
Аномальные значения. Например, какой-то товар зачастую продаётся в количестве 10 штук в сутки, и вдруг в самый обычный день продажи резко перевалили за 1000. Такой неожиданный всплеск, скорее всего, — результат ошибки, и его можно считать отсутствующим значением, потому что реальное не было записано. Чтобы устранить ошибку, потребуется операция очистки данных.
С продажами хлеба, возможно, что-то не так — слишком резкий всплеск на фоне продаж как самого продукта, так и других товаров
С продажами хлеба, возможно, что-то не так — слишком резкий всплеск на фоне продаж как самого продукта, так и других товаров
Многозначность. Такая ошибка возникает, если для обозначения одной сущности используют синонимы. Например, категория товара где-то подписана как «картофель», а где-то как «картошка». Для системы аналитики это будут совершенно разные сущности.
Представим, что нужно посчитать продажи всего картофеля за месяц. Товары категории «картошка» в подсчёт не попадут, поэтому данные о продажах будут неточными
Представим, что нужно посчитать продажи всего картофеля за месяц. Товары категории «картошка» в подсчёт не попадут, поэтому данные о продажах будут неточными
При приёме данных из разных источников существуют ошибки типов, форматов и кодировок. Например, дата рождения из одной базы поступает в хранилище в формате 05.05.2001, а из другой — 5 мая 2001 г. Такие проблемы обычно решают с помощью правил перекодировки ещё при проектировании хранилища, и на стадии очистки данных они встречаются редко.

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

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

Как специалист чистит данные

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

Например, специалист может использовать эти простые методы:

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

Исправлять данные статистически. Если удаление приведёт к неправильному анализу, данные можно корректировать. Например, очистить ячейку с всплеском продаж и подставить на место всплеска ожидаемое значение. Когда данных много, этот метод достаточно эффективен.

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

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

Способы Data Cleaning

Методов очистки существует много, в зависимости от типов ошибок, а вот способов — всего три:

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

2. С помощью скриптов. Их пишет аналитик данных, обычно на Python. Скрипты исправляют ошибки, характерные конкретно для его хранилищ данных.

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

Как правило, эти способы очистки данных аналитики применяют вместе, в зависимости от ситуации.

Совет эксперта

Александр Сушков
Помните, что каждый случай индивидуален. Не стоит поддаваться соблазну очищать данные только автоматически — то, что работает с одним набором данных, может не сработать с другим. Всегда стоит проверить, как появились аномалии, и выдвинуть гипотезы о причинах искажений. Из рассуждений и анализа вариантов часто рождаются методы исправления ошибок. Поскольку аналитики ещё не научили компьютер мыслить ассоциативно, без вдумчивого исследования данных со стороны человека обойтись сложно. Каждый анализ похож на детективное расследование, а этого компьютеры пока не умеют.

Статью подготовили:

Александр Сушков
Яндекс Практикум
Преподаватель и автор курсов, аналитик данных, эксперт SQL
Яндекс Практикум
Редактор

Дайджест блога: ежемесячная подборка лучших статей от редакции

Поделиться

Успейте начать учебу в Практикуме до конца ноября со скидкой 20%

Mon Jul 15 2024 22:04:19 GMT+0300 (Moscow Standard Time)