Очистка данных
Очистка данных (англ. 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 включают встроенные модули для очистки данных в процессе извлечения и загрузки.
Этапы процесса очистки
Хотя процесс может варьироваться, типичный сценарий включает следующие шаги:
- Аудит данных (профилирование): сбор статистики (число пропусков, дубликатов, уникальных значений, типы данных) для понимания текущего состояния и выявления проблем.
- Определение правил и критериев: установление бизнес-правил, форматов, ограничений на значения (например, возраст от 0 до 120 лет, дата в формате ГГГГ-ММ-ДД).
- Выполнение очистки: применение выбранных методов (удаление, замена, стандартизация) к данным.
- Верификация: проверка результатов очистки, повторный аудит для подтверждения, что проблемы устранены, а новые не внесены.
- Документирование: фиксация всех выполненных действий, изменений и принятых решений (например, каким методом заполнялись пропуски, какие записи были удалены). Это необходимо для воспроизводимости и аудита.
Значение и критика
Очистка данных является фундаментальной практикой в науке о данных, бизнес-аналитике и машинном обучении. Без неё модели могут давать неверные прогнозы, а аналитические выводы — быть ошибочными. Принцип «мусор на входе — мусор на выходе» (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 →