Наука о данных

Тема 5: Модуль 5: как готовят данные для задач машинного обучения

Урок 1: Какими бывают данные и как дата-саентисты изучают данные и исправляют огрехи в них

  • Видео
  • Тренажер
  • Теория
Заметили ошибку?

Какими бывают данные

 

Данными может служить любая информация, которую вы записываете или можете достать: текстовые записи из многочисленных баз данных и подсистем, которые использует бизнес; аудиозаписи и расшифровки разговоров кол-центра; фотографии из соцсетей; оцифрованные и электронные документы из корпоративной базы знаний; различные видеозаписи. Но какими бы данными вы ни обладали, их всегда можно разделить на три типа. А еще, скорее всего, в них есть «мусор».



 

Какие проблемы и ошибки могут быть в моих данных?

 

Дата-саентист попросту не сможет работать, если вы не научились агрегировать и консолидировать данные о своих клиентах и продукте автоматически, ведь именно из общей массы ваших данных будет формироваться обучающая выборка для алгоритма. В компаниях, где сегодня начинают следовать стандартам data governance, эта проблема решается грамотным выстраиванием инфраструктуры для сбора и хранения информации. Но если подходы к обработке можно поменять, то вот сами данные — уже нет. И поверьте, данные далеко не всегда будут идеальными. Вот с какими типичными проблемами вы можете столкнуться.

Безусловно, специалист попробует устранить или минимизировать влияние при подготовке выборки (дата-сета).

 

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

Если в компании есть разные системы, услуги и продукты, один и тот же клиент мог оставлять о себе разные сведения в разных местах: где-то вы идентифицируете его по номеру телефона, где-то по адресу почты, где-то — по паспортным данным.

 

В результате вы можете видеть 5 разных пользователей разных продуктов с разными признаками, а на деле — это дубли, ведь клиент у вас один. Собрать всю имеющуюся информацию в единый портрет клиента и унифицировать характеристики — это отдельная работа, которую сегодня в «Ростелекоме» выполняют дата-инженеры.

  • Подвариант: в один момент формат записи данных поменялся

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

 

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

Данные нужно «чистить» от признаков, которые не относятся к решаемой задаче

Обратный случай — ваша база данных, CRM-система (customer relationship management) или хранилище содержит очень много полей: одни могут быть нужны сотрудникам для живого общения с клиентами (например, имя), другие — использоваться для создания автоматической отчетности. Слишком много признаков — тоже плохо, они могут «путать» алгоритм и затягивать его обучение.

 

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

  • Подвариант: характеристики записали ошибочно, и их след остался в базе

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

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

Люди могут ошибаться — ваши пользователи могли случайно или нарочно указать не просто недостоверную информацию о себе, а вбить в какое-то поле набор букв и цифр. Операторы также ошибаются при вводе данных. Наконец, проблемы случаются и на уровне оборудования и программ: один «упавший» сервер может привести к тому, что данные за какой-то период будут утрачены безвозвратно.

 

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

  • Подвариант: аномалии и выбросы

Предположим, у нас есть таблица с данными по потреблению трафика за сутки: в среднем, пользователи держатся в диапазоне 100–1 000 Мб, а один использовал сразу 55 843 Мб трафика. Возможно, он закачивал и раздавал очень много файлов, а может быть, это просто ошибка записи — например, пропала точка или запятая. В любом случае это «выброс».

 

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

  • Подвариант: данные не записаны, есть пропуски

Иногда пробелы могут быть вызваны не только техническими причинами, а процессами: например, какая-то характеристика в вашей базе могла записываться, только если клиент или отдел принимали участие в определенной маркетинговой акции. Этот параметр может быть важным сам по себе, но его не будет у всех объектов в базе.

 

О том, как бороться с этим, мы расскажем в следующей части модуля — сразу после короткой серии заданий.



 

Как дата-саентисты изучают данные и исправляют огрехи в них

 

Прежде чем приступить к обучению модели, дата-саентист смотрит на качество данных для выборок. Каждая строка выгрузки проверяется на наличие ошибок, а поскольку речь обычно идет о тысячах объектов и десятках тысяч признаков, то погрешности проще обобщить, визуализировав данные в виде графиков. Такие визуализации позволяют быстрее составить общее представление о качестве данных, а также найти области выбросов и пробелов, с которыми нужно поработать отдельно.

 

Эта работа проходит уже без участия заказчика — мы рассказываем вам о ней, чтобы вы понимали: обучение алгоритма начнется не сразу после того, как вы сформулировали задачу и предоставили специалисту доступы к своим данным. На их подготовку тоже нужно закладывать время. Какое именно? Зависит от конкретного проекта, выборки, набора проблем и варианта их решения. Чтобы было понятнее, давайте рассмотрим несколько примеров.

 

Пример: готовим данные для модели предсказания спроса

 

Как-то сеть американских гипермаркетов Wallmart провела публичный конкурс на онлайн-платформе Kaggle, созданной для соревнований дата-саентистов. Компания выложила в открытый доступ исторические данные по продажам в 45 магазинах, расположенных в разных регионах. Каждый магазин состоял из нескольких отделов. Задачей специалистов было построить модель, которая спрогнозирует продажи по каждому отделу для каждого магазина. Давайте разберемся, с какими ошибками записи данных сталкивались участники соревнования и как их решали.

 

Данные содержали десятки разных характеристик: от недельного объема продаж в каждом отделе (наша целевая переменная), отметках о праздничных неделях и информации о самом магазине до цен на топливо и сведений об уровне безработицы в регионе в тот же календарный период.

 

В данных были аномалии и выбросы:

  • В некоторых магазинах были зафиксированы отрицательные продажи — их значения составляли 00.3% от всего объема выборки и могли быть как ошибками записи, так и важной для прогнозирования информацией о неделях, когда товаров привезли больше, чем смогли реализовать.
  • Некоторые магазины продавали «слишком много». Чаще всего объем недельных продаж в магазинах составлял до $100 000 долларов в неделю. И только небольшое количество записей зафиксировало продажи на большие суммы — верный признак того, что в данных были очень большие значения переменной.
 

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

 

Часть данных была пропущена. Оказалось, что магазины участвовали в разных маркетинговых акциях. Если определенный магазин участвовал в определенной акции, запись об этом вносилась в определенную строку таблицы, а если нет — клетка оставалась пустой.

 

Удалить 3–4% данных с пропусками из большой выборки — вполне нормальная ситуация. Но так как пробелов было больше, а сами акции обычно существенно влияют на продажи, специалистам нужно было как-то решить проблему. Для этого можно было применить две стратегии:

 
  • Заполнить пропуски нулями — так алгоритму будет что принимать на входе.
  • Предсказать потенциальные значения в пропущенных ячейках — то есть создать и обучить еще один алгоритм, который бы сгенерировал часть данных для обучения основного алгоритма.
 

Оптимальной стала первая стратегия: для магазинов, где проходили акции, сохранились данные, поэтому в остальных ячейках проставили нули — просто чтобы в них не было пустых записей.