Наука о данных
Тема 5: Модуль 5: как готовят данные для задач машинного обученияУрок 1: Какими бывают данные и как дата-саентисты изучают данные и исправляют огрехи в них
- Видео
- Тренажер
- Теория
Какими бывают данные
Данными может служить любая информация, которую вы записываете или можете достать: текстовые записи из многочисленных баз данных и подсистем, которые использует бизнес; аудиозаписи и расшифровки разговоров кол-центра; фотографии из соцсетей; оцифрованные и электронные документы из корпоративной базы знаний; различные видеозаписи. Но какими бы данными вы ни обладали, их всегда можно разделить на три типа. А еще, скорее всего, в них есть «мусор».
Какие проблемы и ошибки могут быть в моих данных?
Дата-саентист попросту не сможет работать, если вы не научились агрегировать и консолидировать данные о своих клиентах и продукте автоматически, ведь именно из общей массы ваших данных будет формироваться обучающая выборка для алгоритма. В компаниях, где сегодня начинают следовать стандартам data governance, эта проблема решается грамотным выстраиванием инфраструктуры для сбора и хранения информации. Но если подходы к обработке можно поменять, то вот сами данные — уже нет. И поверьте, данные далеко не всегда будут идеальными. Вот с какими типичными проблемами вы можете столкнуться.
Безусловно, специалист попробует устранить или минимизировать влияние при подготовке выборки (дата-сета).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Как дата-саентисты изучают данные и исправляют огрехи в них
Прежде чем приступить к обучению модели, дата-саентист смотрит на качество данных для выборок. Каждая строка выгрузки проверяется на наличие ошибок, а поскольку речь обычно идет о тысячах объектов и десятках тысяч признаков, то погрешности проще обобщить, визуализировав данные в виде графиков. Такие визуализации позволяют быстрее составить общее представление о качестве данных, а также найти области выбросов и пробелов, с которыми нужно поработать отдельно.
Эта работа проходит уже без участия заказчика — мы рассказываем вам о ней, чтобы вы понимали: обучение алгоритма начнется не сразу после того, как вы сформулировали задачу и предоставили специалисту доступы к своим данным. На их подготовку тоже нужно закладывать время. Какое именно? Зависит от конкретного проекта, выборки, набора проблем и варианта их решения. Чтобы было понятнее, давайте рассмотрим несколько примеров.
Пример: готовим данные для модели предсказания спроса
Как-то сеть американских гипермаркетов Wallmart провела публичный конкурс на онлайн-платформе Kaggle, созданной для соревнований дата-саентистов. Компания выложила в открытый доступ исторические данные по продажам в 45 магазинах, расположенных в разных регионах. Каждый магазин состоял из нескольких отделов. Задачей специалистов было построить модель, которая спрогнозирует продажи по каждому отделу для каждого магазина. Давайте разберемся, с какими ошибками записи данных сталкивались участники соревнования и как их решали.
Данные содержали десятки разных характеристик: от недельного объема продаж в каждом отделе (наша целевая переменная), отметках о праздничных неделях и информации о самом магазине до цен на топливо и сведений об уровне безработицы в регионе в тот же календарный период.
В данных были аномалии и выбросы:
- В некоторых магазинах были зафиксированы отрицательные продажи — их значения составляли 00.3% от всего объема выборки и могли быть как ошибками записи, так и важной для прогнозирования информацией о неделях, когда товаров привезли больше, чем смогли реализовать.
- Некоторые магазины продавали «слишком много». Чаще всего объем недельных продаж в магазинах составлял до $100 000 долларов в неделю. И только небольшое количество записей зафиксировало продажи на большие суммы — верный признак того, что в данных были очень большие значения переменной.
Чтобы понять причину выбросов, специалистам требовалось отдельно изучить случаи высоких продаж — скорее всего, это могло быть связано с распродажами.
Часть данных была пропущена. Оказалось, что магазины участвовали в разных маркетинговых акциях. Если определенный магазин участвовал в определенной акции, запись об этом вносилась в определенную строку таблицы, а если нет — клетка оставалась пустой.
Удалить 3–4% данных с пропусками из большой выборки — вполне нормальная ситуация. Но так как пробелов было больше, а сами акции обычно существенно влияют на продажи, специалистам нужно было как-то решить проблему. Для этого можно было применить две стратегии:
- Заполнить пропуски нулями — так алгоритму будет что принимать на входе.
- Предсказать потенциальные значения в пропущенных ячейках — то есть создать и обучить еще один алгоритм, который бы сгенерировал часть данных для обучения основного алгоритма.
Оптимальной стала первая стратегия: для магазинов, где проходили акции, сохранились данные, поэтому в остальных ячейках проставили нули — просто чтобы в них не было пустых записей.