Данные — основа бизнес-решений. В ритейле это миллионы транзакций и информации о поведении клиентов, которые анализируются для прогнозирования спроса, управления запасами и создания персонализированных предложений. В банковской сфере данные о транзакциях и кредитах используются для оценки рисков и предотвращения мошенничества.
Для структурирования работы с данными компании применяют стандарты, такие как CRISP-DM, CRISP-ML и другие. Один из ключевых этапов в любом стандарте — подготовка данных, которая напрямую влияет на качество аналитики. Если исходные данные неполные, ненадёжные или содержат ошибки, это приведёт к неточным результатам.
Несмотря на это, многие компании обрабатывают данные вручную, что увеличивает вероятность ошибок и замедляет процессы. Это делает подготовку данных долгим и ресурсоёмким процессом.
В этой статье мы шаг за шагом рассмотрим процесс подготовки данных.
Почему подготовка данных для машинного обучения — основа аналитики
Процесс работы с данными всегда начинается с их извлечения и подготовки, независимо от того, какой стандарт используется — CRISP-DM, KDD или любой другой. Это один из самых трудоёмких этапов, требующий времени и множества итераций.
Ключевые шаги подготовки данных включают:
- Исследование данных (Data Exploration) — изучение исходных данных для выявления их структуры и особенностей;
- Очистку данных (Data Cleansing) — удаление ошибок, дубликатов и аномалий;
- Объединение данных (Data Blending) — интеграция данных из разных источников;
- Профилирование данных (Data Profiling) — анализ качества и целостности данных;
- ETL (Extract, Transform, Load) — извлечение, трансформация и загрузка данных в хранилище;
- Обработку данных (Data Wrangling) — преобразование данных в форму, пригодную для анализа.
Коварство подготовки данных в том, что ошибки, связанные с качеством данных, часто остаются незамеченными до тех пор, пока не начинают искажать результаты анализа и моделей.
Проблемы ручной подготовки данных
Какие проблемы у ручной подготовки данных? Конечно, это длительность и трудоёмкость, риск ошибок из-за человеческого фактора, неравномерное качество наборов данных в зависимости от того, какой конкретно сотрудник готовил данные, дорогое масштабирование процессов при росте объёмов данных и зависимость от экспертов.
Решение: автоматизация процесса подготовки данных
В условиях роста объёмов данных и их сложности автоматизация подготовки данных становится необходимым условием для анализа.
Раньше для подготовки данных требовались навыки написания кода инженерами данных и ИТ-специалистами, что напоминало закрытую дверь между необработанными данными и людьми, которые их анализировали.
Один из инструментов, который может помочь в этом, — платформа Epsilon Workflow.
Что такое Epsilon Workflow? Это инструмент, который автоматизирует все шаги работы с данными. С Epsilon Workflow можно интегрировать данные из различных источников, работать с большими объёмами и настраивать повторяемые, документируемые процессы, что делает результаты анализа более надёжными.
Какие преимущества даёт автоматизация? Скорость, снижение числа ошибок, масштабируемость процессов по мере роста объёма данных, повторное использование настроенных процессов, мониторинг и автоматическое документирование.
1. Исследование данных (Data Exploration)
Это первый шаг в анализе данных, который помогает специалистам понять их структуру, содержимое и основные характеристики. Исследование данных включает в себя:
- Изучение структуры данных. Определение типов данных (числовые, категориальные и т.д.), распределение значений и количество переменных.
- Выявление проблем. Поиск пропущенных значений, выбросов, дубликатов и других аномалий.
- Визуализация данных. Построение графиков (гистограммы, диаграммы рассеяния, коробочные диаграммы) для визуального анализа данных.
- Анализ взаимосвязей. Изучение корреляций и взаимосвязей между переменными с использованием статистических методов.
Цель исследования данных — получить представление о данных, сформулировать гипотезы для дальнейшего анализа и выявить закономерности, которые могут оказаться полезными на последующих шагах.
Вот несколько техник исследования данных:
Проверка структуры данных. Начните с просмотра названий столбцов и описания полей. Это поможет выявить аномалии, такие как неправильные наименования переменных, дублирующиеся поля или отсутствие ключевых данных. Например, если у вас есть поле «дата», но оно заполнено не полностью или содержит записи в некорректном формате, это – сигнал к проверке.
Анализ распределения значений. Проверьте, насколько данные внутри каждой переменной распределены и уникальны. Какое количество уникальных значений содержит переменная? Каков диапазон значений и их частотное распределение? Эти шаги позволяют быстро выявить «температуру» набора данных и убедиться, что переменные корректны. Если у вас есть числовые данные, например, по доходам, необходимо проверить, нет ли неожиданных выбросов или значений за пределами нормальных диапазонов.
Выявление аномалий. Аномалии — это данные, которые существенно отличаются от остальных и могут искажать результаты анализа. Их можно обнаружить как с помощью визуальных методов (гистограммы, коробчатые диаграммы, диаграммы рассеяния), так и с помощью численных методов, таких как расчёт z-показателей. Например, аномальные транзакции в наборе финансовых данных могут указывать на ошибки ввода или мошенничество, что требует особого внимания.
Анализ отклонений. После выявления аномальных данных важно разобраться, что с ними делать. Следует ли их оставить, чтобы учесть в дальнейшем анализе, или корректировать/исключать? Здесь важно быть внимательным, так как исключение отклонений может изменить результаты модели, но и их включение может привести к ложным выводам.
Поиск закономерностей и взаимосвязей. После анализа индивидуальных переменных важно посмотреть на взаимосвязи между ними. Использование корреляционного анализа или методов регрессии помогает выявить значимые связи между переменными. Например, вы можете выяснить, что между возрастом клиентов и их покупательской способностью существует сильная корреляция, что может стать важным фактором для будущего анализа и построения моделей.
2. Очистка данных (Data Cleansing)
Необработанные данные часто содержат дубликаты, пропуски, ошибки и выбросы, которые снижают точность аналитики. Очистка помогает устранить эти проблемы, повысить качество моделей и быть уверенным, что анализ основан на корректных данных.
Аналитики знают это слишком хорошо, потому что именно так и проводят бОльшую часть своего рабочего времени.
В зависимости от типа выполняемого анализа на этапе очистки выполняются шесть типовых действий.
1. Удалить все повторяющиеся записи, которые «засоряют» пространство и искажают результаты анализа. Дубликаты искажают метрики и могут приводить к некорректным выводам. Например, в проекте по анализу клиентских транзакций интернет-магазина были обнаружены несколько записей одного и того же клиента. Удаление этих дубликатов помогло улучшить расчёт ключевых метрик, таких как количество уникальных клиентов и средняя сумма покупок.
2. Удалить все строки или столбцы, которые не имеют отношения к проблеме, которую вы пытаетесь решить. Данные, не имеющие отношения к текущему анализу, должны быть исключены. Например, если в проекте по прогнозированию спроса используются данные о местоположении офисов, которые не влияют на продажи, их удаление позволит сосредоточиться на более значимых переменных.
3. Исправить ошибки — заглавные буквы, аббревиатуры, форматирование, лишние символы. Ошибки в данных, такие как опечатки, неверные форматы или некорректные типы данных, должны быть устранены. Например, разные формы написания страны («USA», «United States», «США») могут привести к дублированию и неверным результатам при группировке данных. Приведение значений к единому формату помогает избежать этих проблем.
4. Проанализировать и, возможно, удалить или дополнить недостающую информацию. Пропущенные значения могут исказить результаты анализа, поэтому их следует удалить или заполнить с помощью методов, таких как медиана, среднее и других. Например, в проекте по исследованию продуктивности сотрудников пропущенные данные о рабочих часах могут быть заполнены средними значениями по отделам для сохранения целостности анализа.
5. Убрать все нежелательные отклонения, обнаруженные в ходе анализа данных. Аномальные значения, которые существенно отличаются от других данных, могут искажать анализ. Выбросы можно либо удалить, либо трансформировать. Например, в анализе финансовых транзакций могут быть выявлены ошибки ввода с аномально высокими суммами (если пользователь ошибся с запятой), которые могут быть удалены.
6. Записать все операции, которые вы выполнили, и инструменты, и приёмы, которые использовали. Другими словами, задокументировать процесс для того, чтобы можно было затем проверить и передать результаты коллегам. Важно записывать все шаги очистки данных, чтобы обеспечить воспроизводимость и возможность проверки результатов. Это критично для отслеживания изменений и для обеспечения качества данных на каждом этапе.
3. Объединение данных (Data Blending): больше данных в хранилище данных — лучше выводы
Чем больше качественных наборов данных включено в анализ, тем точнее будут выводы. Для большинства аналитических проектов используются как внутренние, так и внешние источники данных. Обычно требуется шесть и более источников данных, и для их эффективного объединения необходимы современные инструменты.
Важно иметь возможность отслеживать все внесённые изменения, чтобы при необходимости вернуться к предыдущим версиям данных.
Основные этапы объединения данных
Получение и подготовка. Современные инструменты обработки данных позволяют включать различные типы файлов и структур — от облачных платформ и PDF-файлов до данных ERP и CRM-систем. Инструменты быстро преобразуют их в единую структуру для дальнейшего анализа.
Объединение. В традиционных электронных таблицах для этого используется функция VLOOKUP или подобные. В инструментах аналитики самообслуживания (self-service analytics) объединение сводится к простому перетаскиванию данных между источниками.
Валидация. На этом этапе проверяются результаты объединения. Нужно выявить все несоответствия и ошибки, при необходимости провести дополнительную очистку данных или внести коррективы.
4. Профилирование данных (Data Profiling): не все данные пригодны для анализа
Профилирование данных — это более точный процесс по сравнению с общим исследованием данных и очисткой данных.
Если исследование данных даёт общее представление о наборе, то профилирование помогает определить, подходят ли данные для конкретного проекта или приложения. Этот процесс помогает выявить потенциальные проблемы, такие как пропуски, ошибки форматирования, и установить, насколько качество данных позволяет провести анализ.
Что позволяет профилирование?
- Оценить, можно ли использовать данные для анализа и решить, подходят ли они для проекта.
- Выявить и устранить проблемы с качеством данных ещё до начала их переноса в целевое хранилище или базу данных.
- Выявить ошибки, которые могут быть исправлены с помощью процедур ETL при перемещении данных из источника в целевое хранилище или базу данных.
- Найти скрытые бизнес-правила, зависимости, иерархические структуры (например, иерархию продуктов или департаментов) и связи между таблицами через первичные и внешние ключи, а затем использовать эту информацию для настройки процесса ETL.
Хотя этот процесс может быть сложным и трудоёмким (особенно без автоматизации), но именно профилирование позволяет избежать ошибок на следующих этапах анализа и обеспечить нужный уровень качества данных.
Профилирование структуры (Structural Profiling)
Этот тип профилирования проверяет, насколько данные соответствуют ожидаемой структуре и форматам. Он включает проверки типов данных, длины строк, форматов, а также расчёт основных статистических показателей (сумма, минимум, максимум и т.д.). Цель — убедиться, что данные структурированы правильно.
Примеры: проверка, что все даты записаны в едином формате (например, YYYY-MM-DD), числовые поля не содержат текстовых данных, а телефонные номера имеют правильное количество цифр для той или иной страны.
Профилирование значений (Content Profiling)
Этот тип профилирования анализирует качество данных на уровне отдельных записей, выявляя ошибки, такие как некорректные значения, пропуски или дубликаты. Также могут исправляться несоответствия в написаниях и форматах.
Примеры: выявление пустых полей в данных клиентов, дубликатов идентификаторов, ошибок в написании городов (разные варианты написания одного и того же города), или значений номеров телефона, где нет кода мобильного оператора или страны.
Профилирование связей (Relationship Profiling)
Этот тип профилирования определяет связи и зависимости между частями данных, например, между таблицами или полями. Он анализирует, как данные связаны между собой и как эти связи сохраняются при перемещении или интеграции данных из разных систем.
Примеры: проверка связей между таблицами в базе данных через внешние и первичные ключи (например, связи между таблицами «Клиенты» и «Заказы»), а также проверка соответствия данных, как между полями «Город» и «Почтовый индекс» для корректности их использования в CRM-системе.
ETL (Extract, Transform, Load): извлечь, преобразовать и загрузить
Современные компании работают с большими объёмами данных, которые поступают из разных источников. Чтобы использовать их эффективно, нужно извлекать данные, объединять их и хранить в централизованном хранилище. Этот процесс называется ETL (Extract, Transform, Load) и является очень важным для масштабирования работы с данными.
ETL помогает не только в повседневной работе, но и в таких проектах, как миграция на новые системы или слияние компаний. Основная задача — интегрировать данные в одну систему и сделать их доступными для всей команды. Это позволяет аналитикам, инженерам и руководителям и сотрудникам разных подразделений принимать решения на основе единого источника информации.
Процесс ETL состоит из трёх шагов:
- Извлечение. Сначала нужно собрать данные — из разных источников, будь то базы данных, API или внешние системы. Очень важно сразу проверить качество данных, чтобы избежать проблем на последующих этапах.
- Преобразование. Это включает стандартизацию, нормализацию, удаление дубликатов и другие преобразования, чтобы данные соответствовали требованиям аналитических инструментов.
- Загрузка. Поместите данные в целевое хранилище. Убедитесь, что данные загружены корректно, проведите выборочные проверки и убедитесь в отсутствии ошибок.
6. Обработка данных (Data Wrangling)
Термин «Data Wrangling» часто используется в более широком смысле для обозначения всего процесса «Data Preparation», или, наоборот, для описания очистки данных («Data Cleaning»), но на самом деле он относится к подготовке, которая происходит в процессе анализа и построения моделей машинного обучения.
Очистка данных («Data Cleaning») — этап, позволяющий устранить неточные и противоречивые данные. А обработка данных («Data Wrangling») охватывает более широкий процесс, в ходе которого необработанные данные преобразуются в удобный для анализа формат.
Шаг «Data Wrangling» позволяет преобразовать данные, чтобы обеспечить их совместимость с алгоритмами машинного обучения. Даже если данные были подготовлены на предыдущих шагах, в процессе анализа может возникнуть необходимость в дополнительной обработке, чтобы учесть специфику модели и особенности данных. Это и есть «Data Wrangling».
Если результаты модели не соответствуют ожиданиям, стоит вернуться к этапу подготовки данных, провести их повторный анализ и проверить, нет ли проблем с качеством или структурой данных.
Будущее обработки данных
Обработкой данных раньше занимались разработчики и ИТ-эксперты, обладающие обширными знаниями в области администрирования баз данных и свободно владеющие SQL, R и Python. Решения для автоматизации аналитики данных изменила это, избавляя от электронных таблиц и упростив работу специалистов по обработке данных, аналитиков данных и ИТ-экспертов по обработке и анализу сложных данных.
Что даёт автоматизация процессов подготовки данных
Представьте себе мир, где данные не «разбросаны» по изолированным таблицам и системам. Вы можете получить доступ к данным в любом формате и автоматизировать их подготовку с помощью no-code платформы. Как это изменит работу вашей компании?
На практике автоматизация обработки данных приносит следующие преимущества:
- Переход на автоматизированную платформу даёт ощутимые результаты уже через несколько дней или недель.
- Автоматизация освобождает аналитиков от рутинных задач, позволяя им сосредоточиться на решении более сложных проблем. Вы больше не тратите время на однотипные задачи с данными.
- Устранение барьеров доступа к данным позволяет вовлечь всех сотрудников в процесс.
Заключение
Обработка данных может отнимать много времени и ресурсов, особенно без автоматизации. Поэтому всё больше организаций внедряют автоматизированные решения, которые позволяют снизить ошибки и повысить точность анализа. Автоматизация не только ускоряет процесс, но и делает его более эффективным, что в итоге улучшает принятие решений и бизнес-результаты.
Если вы хотите ускорить анализ данных, повысить точность результатов и внедрить автоматизацию в свои процессы, свяжитесь с нами для демонстрации нашей платформы анализа данных.