Сбор данных

Тема дорожной карты · Основы машинного обучения

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

Как это работает

Сбор данных занимает 70-80% от общего времени ML-проекта. Процесс включает несколько ключевых шагов: сбор данных из различных источников (баз данных, API, скрапинг, внутренние логи); очистка данных (обработка пропущенных значений, выбросов, дубликатов, ошибок типов); исследование данных (EDA — анализ распределений, корреляций, баланса классов); разделение данных на тренировочную, валидационную и тестовую выборки (без утечек); нормализацию и стандартизацию (преобразование признаков на сравнимой шкале). Для работы с табличными данными часто используются инструменты, такие как Pandas, а для версионирования данных и управления изменениями — DVC или lakeFS. Для проверки качества данных используются инструменты, такие как Great Expectations или Pandera.

Когда применять

Всегда выполняйте EDA (исследовательский анализ данных) до моделирования. Распределения данных, баланс классов и паттерны пропущенных значений могут указывать на выбор оптимального алгоритма и соответствующего preprocessing. Важно сплитить данные до нормализации — статистические данные (например, средние и дисперсии) должны быть рассчитаны на тренировочной выборке и применены к валидационной и тестовой выборкам. Это предотвращает утечку информации. Для несбалансированных классов следует использовать стратифицированный сплит. Кроме того, важно документировать lineage данных — через полгода вы можете забыть, откуда взята каждая колонка.

Типичные ошибки

Типичные ошибки при сборе данных включают утечку данных (будущая информация попадает в тренировочную выборку), нормализацию до разделения на тренировочную, валидационную и тестовую выборки (что приводит к утечке статистических данных), импутацию, которая разрушает сигнал (например, замена NaN на 0, когда 0 означает "отсутствие данных"), а также не использование стратификации для несбалансированных классов (что может привести к ситуации, когда тестовая выборка не содержит положительных примеров, что делает метрики, такие как AUC, неопределенными).

Связанные понятия

Полезные ресурсы