Открыть сервис

Очистка данных

Очистка данных (англ. data cleaning, data scrubbing) — это процесс выявления, исправления или удаления некорректных, повреждённых, неполных, неточно сформулированных, дублирующихся или неподходящих для анализа записей в наборе данных. Очистка является одним из ключевых этапов предобработки данных в рамках более широкого процесса подготовки данных (data preparation) и, как правило, предшествует анализу, визуализации, машинному обучению и другим видам обработки. Качество результатов анализа напрямую зависит от качества исходных данных, поэтому очистка считается критически важной, но часто трудоёмкой и ресурсоёмкой задачей, занимающей, по разным оценкам, от 60 до 80 % времени всего процесса анализа данных.

Основные цели и задачи

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

  • Устранение дубликатов: удаление полностью или частично повторяющихся записей, которые могут исказить статистические показатели и привести к смещению результатов.
  • Обработка пропущенных значений: заполнение пробелов (например, средним, медианой, модой, предсказанным значением) или удаление записей с пропусками, если они составляют незначительную долю.
  • Исправление синтаксических ошибок: приведение данных к единому формату (например, дат, номеров телефонов, адресов), исправление опечаток и орфографических ошибок.
  • Выявление и обработка выбросов (аномалий): обнаружение значений, которые резко отклоняются от общей закономерности, и принятие решения об их коррекции, удалении или отдельном анализе.
  • Приведение к единообразию: стандартизация единиц измерения, сокращений, регистров букв, терминологии.
  • Проверка согласованности: выявление логических противоречий (например, дата рождения позже даты смерти, отрицательное количество товара).

Типичные проблемы с данными

Источниками «грязных» данных могут быть ошибки при ручном вводе, сбои в работе датчиков, некорректная интеграция из разных систем, изменение форматов хранения, устаревание информации и человеческий фактор. К наиболее распространённым проблемам относятся:

  • Пропущенные значения (null, NaN, пустые строки): возникают, когда поле не было заполнено или данные не были собраны.
  • Дубликаты: точные копии строк или записи, различающиеся лишь незначительными деталями (например, «Иванов И.И.» и «Иванов Иван Иванович»).
  • Нестандартные форматы: даты в виде «01.02.2023», «02/01/23», «2023-02-01»; номера телефонов с разными кодами стран и разделителями.
  • Выбросы: значения, выходящие за пределы ожидаемого диапазона (например, возраст 250 лет, температура -300 °C).
  • Опечатки и орфографические ошибки: «Москва» и «Москваа», «Санкт-Питербург».
  • Логические несоответствия: пол «мужской» при диагнозе «беременность», дата заказа позже даты доставки.
  • Шум: случайные или неинформативные данные, особенно характерные для текстов и данных с датчиков.

Методы и подходы к очистке

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

Обработка пропущенных значений

  • Удаление записей (listwise deletion): удаление всех строк, содержащих хотя бы одно пропущенное значение. Применяется, если доля пропусков мала (обычно менее 5 %).
  • Удаление переменных (column deletion): удаление столбца, если в нём пропущено более 50–70 % значений.
  • Заполнение константой: замена пропусков на фиксированное значение (например, «Неизвестно», 0).
  • Заполнение статистическими показателями: замена на среднее, медиану или моду по столбцу.
  • Интерполяция: заполнение пропусков на основе соседних значений (например, для временных рядов).
  • Импутация (imputation): предсказание пропущенного значения с помощью модели (например, регрессии, k-ближайших соседей).

Устранение дубликатов

  • Точное совпадение: удаление записей, идентичных по всем полям.
  • Нечёткое совпадение (fuzzy matching): сопоставление записей на основе метрик расстояния (Левенштейна, Джаро — Винклера) для выявления дубликатов с опечатками или вариациями написания. Требует задания порога схожести.

Стандартизация и нормализация

  • Приведение к единому регистру: перевод всех текстовых значений в нижний или верхний регистр.
  • Удаление лишних пробелов: удаление начальных, конечных и двойных пробелов.
  • Форматирование дат и чисел: приведение к единому шаблону (например, ISO 8601 для дат).
  • Кодирование категориальных переменных: преобразование текстовых меток в числовые коды (например, one-hot encoding, label encoding).

Выявление и обработка выбросов

  • Статистические методы: использование межквартильного размаха (IQR), z-оценки, правил «трёх сигм».
  • Визуальные методы: построение ящиков с усами (boxplot), гистограмм, диаграмм рассеяния.
  • Методы машинного обучения: кластеризация (например, DBSCAN), изолирующий лес (Isolation Forest), LOF (Local Outlier Factor).
  • Обработка: удаление выбросов, замена на граничные значения (winsorizing), логарифмическое преобразование.

Инструменты и технологии

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

  • Языки программирования:
  • Python: библиотеки pandas (основные функции фильтрации, группировки, обработки пропусков), numpy (численные операции), scikit-learn (импутация, обнаружение выбросов), OpenRefine (интерактивная очистка), Dedupe (дедупликация).
  • R: пакеты dplyr, tidyr, janitor, stringr.
  • Специализированное ПО:
  • OpenRefine: мощный инструмент с графическим интерфейсом для исследования, очистки и преобразования данных, особенно табличных.
  • Trifacta: платформа для подготовки данных, использующая машинное обучение для предложения шагов очистки.
  • DataWrangler: инструмент от Microsoft Research для интерактивной очистки.
  • СУБД: SQL-запросы (UPDATE, DELETE, DISTINCT, COALESCE, CASE) для очистки данных непосредственно в базах данных.
  • Платформы ETL: Apache NiFi, Talend, Informatica включают встроенные модули для очистки данных в процессе извлечения и загрузки.

Этапы процесса очистки

Хотя процесс может варьироваться, типичный сценарий включает следующие шаги:

  1. Аудит данных (профилирование): сбор статистики (число пропусков, дубликатов, уникальных значений, типы данных) для понимания текущего состояния и выявления проблем.
  2. Определение правил и критериев: установление бизнес-правил, форматов, ограничений на значения (например, возраст от 0 до 120 лет, дата в формате ГГГГ-ММ-ДД).
  3. Выполнение очистки: применение выбранных методов (удаление, замена, стандартизация) к данным.
  4. Верификация: проверка результатов очистки, повторный аудит для подтверждения, что проблемы устранены, а новые не внесены.
  5. Документирование: фиксация всех выполненных действий, изменений и принятых решений (например, каким методом заполнялись пропуски, какие записи были удалены). Это необходимо для воспроизводимости и аудита.

Значение и критика

Очистка данных является фундаментальной практикой в науке о данных, бизнес-аналитике и машинном обучении. Без неё модели могут давать неверные прогнозы, а аналитические выводы — быть ошибочными. Принцип «мусор на входе — мусор на выходе» (Garbage In, Garbage Out, GIGO) напрямую иллюстрирует важность этого этапа.

В то же время процесс очистки подвергается критике по нескольким причинам:

  • Трудоёмкость: ручная очистка больших массивов данных требует значительных временных и человеческих ресурсов.
  • Субъективность: решения о том, как обрабатывать пропуски или выбросы, часто принимаются аналитиком на основе опыта и могут влиять на результаты.
  • Риск потери информации: удаление «грязных» записей может привести к потере ценных данных, особенно если ошибки систематичны.
  • Отсутствие стандартизации: единого универсального рецепта очистки не существует; каждый набор данных требует индивидуального подхода.

См. также

  • Предобработка данных
  • Профилирование данных
  • Качество данных
  • Интеграция данных
  • ETL (Extract, Transform, Load)

Источники

  • Han, J., Kamber, M., & Pei, J. (2011). Data Mining: Concepts and Techniques (3rd ed.). Morgan Kaufmann.
  • Wickham, H., & Grolemund, G. (2017). R for Data Science. O'Reilly Media.
  • McKinney, W. (2017). Python for Data Analysis (2nd ed.). O'Reilly Media.
  • Dasu, T., & Johnson, T. (2003). Exploratory Data Mining and Data Cleaning. Wiley.
  • Rahm, E., & Do, H. H. (2000). Data cleaning: Problems and current approaches. IEEE Data Engineering Bulletin, 23(4), 3–13.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →