Как готовят данные для задач машинного обучения
Когда вы определились со всеми деталями проекта, наступает время подобрать и подготовить обучающую и тестовые выборки — наборы данных, на которых алгоритм будут тренировать и проверять.
В этом модуле вы узнаете:
• как собирать и хранить информацию о клиентах и их действиях, чтобы быстрее и эффективнее применять ее для любых видов аналитики;
• о частых проблемах в исторических данных, которые могут искажать работу алгоритма;
• как дата-сайентист борется с аномалиями, пропусками данных и другими ошибками в данных.
Оглавление
Данными может служить любая информация, которую вы записываете или можете достать: текстовые записи из многочисленных баз данных и подсистем, которые использует бизнес; аудиозаписи и расшифровки разговоров кол-центра; фотографии из соцсетей; оцифрованные и электронные документы из корпоративной базы знаний; различные видеозаписи. Но какими бы данными вы ни обладали, их всегда можно разделить на три типа. А еще, скорее всего, в них есть «мусор».
В этом видео Сергей Носов расскажет, какие обозначения для разных типов данных применяются в «Ростелекоме». А затем Элен Теванян объяснит, с какими трудностями сталкиваются дата-сайентисты при знакомстве с данными, которые есть у бизнеса.
Дата-сайентист попросту не сможет работать, если вы не научились агрегировать и консолидировать данные о своих клиентах и услугах и цифровых продуктах автоматически, ведь именно из общей массы ваших данных будет формироваться обучающая выборка для алгоритма. В компаниях, где сегодня начинают следовать стандартам data governance, эта проблема решается грамотным выстраиванием инфраструктуры для сбора и хранения информации. Но если подходы к обработке можно поменять, то вот сами данные — уже нет. И поверьте, данные далеко не всегда будут идеальными. Вот с какими типичными проблемами вы можете столкнуться.
Если в компании есть разные системы, услуги и цифровые продукты, один и тот же клиент мог оставлять о себе разные сведения в разных местах: где-то его идентифицируют по номеру телефона, где-то по адресу почты, где-то — по паспортным данным.
В результате вы можете видеть 5 разных пользователей разных услуг с разными признаками, а на деле — это дубли, ведь клиент у вас один. Собрать всю имеющуюся информацию в единый портрет клиента и унифицировать характеристики — это отдельная работа, которую сегодня в «Ростелекоме» выполняют дата-инженеры.
Подвариант: в один момент формат записи данных поменялся
Даже если мы имеем дело с единой базой данных за все время существования услуги, не факт, что данные в ее столбцах всегда значат одно и то же: например, в один момент суммы платежей могли записываться в долларах, а затем компания перешла на запись в рублях. Данные попадали в то же поле, но цифры «скакнули».
Идеально, если вы знаете об этом и предупредите специалиста. А вот если происхождение и история данных до конца неизвестны, вас могут ждать сюрпризы во время обучения модели.
Обратный случай — ваша база данных, CRM-система (customer relationship management) или хранилище содержит очень много полей: одни могут быть нужны сотрудникам для живого общения с клиентами (например, имя), другие — использоваться для создания автоматической отчетности. Слишком много признаков — тоже плохо, они могут «путать» алгоритм и затягивать его обучение.
Поэтому лучше заложить время на очистку данных от лишних признаков. А часть данных вам, возможно, потребуется удалить из выборки или обезличить в соответствии с действующими законами — мы еще поговорим об этом.
Подвариант: характеристики записали ошибочно, и их след остался в базе
Может оказаться, что в базу данных о клиентах включалась информация об отмененных заказах или аннулированных заявках. На таких данных не стоит строить прогнозы о будущих покупках — вы научите алгоритм предсказывать события, которые не произойдут.
Люди могут ошибаться — ваши пользователи могли случайно или нарочно указать не просто недостоверную информацию о себе, а вбить в какое-то поле набор букв и цифр. Операторы также ошибаются при вводе данных. Наконец, проблемы случаются и на уровне оборудования и программ: один «упавший» сервер может привести к тому, что данные за какой-то период будут утрачены безвозвратно.
Опять же идеально, если компания умеет автоматически исправлять опечатки, обучает операторов и фиксирует все сбои инфраструктуры. И помните: некоторые пробелы в данных можно восстановить по другой информации (например, сумму платежей клиента в определенном месяце можно восстановить из названия тарифа, региона и детализации звонков).
Подвариант: аномалии и выбросы
Предположим, у нас есть таблица с данными по потреблению трафика за сутки: в среднем, пользователи держатся в диапазоне 100–1 000 Мб, а один использовал сразу 55 843 Мб трафика. Возможно, он закачивал и раздавал очень много файлов, а может быть, это просто ошибка записи — например, пропала точка или запятая. В любом случае это «выброс».
Дата-сайентист постарается обнаружить их, а вы изучите каждый в отдельности, если будет такая необходимость.
Подвариант: данные не записаны, есть пропуски
Иногда пробелы могут быть вызваны не только техническими причинами, а процессами: например, какая-то характеристика в базе могла записываться, только если клиент или отдел принимали участие в определенной маркетинговой акции. Этот параметр может быть важным сам по себе, но его не будет у всех объектов в базе.
О том, как бороться с этим, мы расскажем в следующей части модуля — сразу после короткой серии заданий.
Прежде чем приступить к обучению модели, дата-сайентист смотрит на качество данных для выборок. Каждая строка выгрузки проверяется на наличие ошибок, а поскольку речь обычно идет о тысячах объектов и десятках тысяч признаков, то погрешности проще обобщить, визуализировав данные в виде графиков. Такие визуализации позволяют быстрее составить общее представление о качестве данных, а также найти области выбросов и пробелов, с которыми нужно поработать отдельно.
Эта работа проходит уже без участия менеджеров проектов, то есть не специалистов — мы рассказываем вам о ней, чтобы вы понимали: обучение алгоритма начнется не сразу после того, как вы сформулировали задачу и предоставили специалисту доступы к своим данным. На их подготовку тоже нужно закладывать время. Какое именно? Зависит от конкретного проекта, выборки, набора проблем и варианта их решения. Чтобы было понятнее, давайте рассмотрим несколько примеров.
Как-то сеть американских гипермаркетов Wallmart провела публичный конкурс на онлайн-платформе Kaggle, созданной для соревнований дата-сайентистов. Компания выложила в открытый доступ исторические данные по продажам в 45 магазинах, расположенных в разных регионах. Каждый магазин состоял из нескольких отделов. Задачей специалистов было построить модель, которая спрогнозирует продажи по каждому отделу для каждого магазина. Давайте разберемся, с какими ошибками записи данных сталкивались участники соревнования и как их решали.
Данные содержали десятки разных характеристик: от недельного объема продаж в каждом отделе (наша целевая переменная), отметках о праздничных неделях и информации о самом магазине до цен на топливо и сведений об уровне безработицы в регионе в тот же календарный период.
1. В данных были аномалии и выбросы:
Чтобы понять причину выбросов, специалистам требовалось отдельно изучить случаи высоких продаж — скорее всего, это могло быть связано с распродажами.
2. Часть данных была пропущена.
Оказалось, что магазины участвовали в разных маркетинговых акциях. Если определенный магазин участвовал в определенной акции, запись об этом вносилась в определенную строку таблицы, а если нет — клетка оставалась пустой.
Удалить 3–4% данных с пропусками из большой выборки — вполне нормальная ситуация. Но так как пробелов было больше, а сами акции обычно существенно влияют на продажи, специалистам нужно было как-то решить проблему. Для этого можно было применить две стратегии:
Оптимальной стала первая стратегия: для магазинов, где проходили акции, сохранились данные, поэтому в остальных ячейках проставили нули — просто чтобы в них не было пустых записей.
По закону под персональными данными понимается «любая информация, относящаяся к прямо или косвенно определенному или определяемому физическому лицу». В зависимости от ситуации персональными данными может считаться не только информация, которая прямо указывает на определенную личность (например, комбинация «Ф.И.О., место работы и проживания»), но и почти любые косвенные сведения, которые могут указать на личность в каком-то контексте. Поэтому лучшее, что вы можете сделать, — обсудить проект с квалифицированным юристом, чтобы максимально обезопасить себя, коллег и партнеров от не всегда очевидных юридических рисков.
Ниже мы собрали несколько базовых советов на разные случаи, которыми поделился преподаватель факультета права Высшей школы экономики Михаил Журавлев. Но помните: незнание закона не освобождает от ответственности, а каждый случай индивидуален, поэтому лучше проконсультироваться со специалистом.
Вы используете персональные данные, накопленные вашей компанией
Вы используете данные от партнеров либо забираете их из внешних источников
Вы создаете скоринговый сервис или иную систему, которая автоматизирует принятие решений и сообщает о них посетителю сайта
Если вы не можете получить согласие на обработку данных
В любом случае
Собирать данные об онлайн-активности посетителей на сайте либо записывать на сервера информацию от вашего продукта (например, видеокамер), чтобы анализировать их, выделять закономерности и делать эффективнее — в целом благое дело. Но его надо оформить и организовать правильно, особенно если аналитику выполнит другое юрлицо — стороннее или входящее в вашу группу компаний. Этот список правил от юристов поможет организовать все этапы так, как надо.
Недавно на нарушении этих простых в общем-то правил попалась компания Amazon. Результат — удар по репутации (о том, как фирма «плюет» на защиту тайны частной жизни клиентов, не писал только ленивый) и снижение доверия к ее продукту: умному дверному звонку-видеокамере. А ведь компания «всего лишь» забыла обезличить данные клиентов, передавая их на разметку своему же подразделению. Не повторяйте чужих ошибок — учитесь на них.
Запросите явное согласие на сбор и обработку персональных данных
Если на сайте есть личные аккаунты и используются любые процедуры регистрации (через аккаунты соцсетей, форму с указанием контактных данных и т. п.) — вы ведете базу с персональными данными и точно подпадаете под требование закона.
Если вы используете постоянные cookie-файлы для посетителя сайта даже без регистрации — есть риск признания факта обработки персональных данных, так что лучше получить согласие.
Укажите в согласии цель использования данных и закрепите возможность привлекать к их обработке третьих лиц
Например, в случае с рекомендательной системой эта цель может звучать как «анализ персональных данных средствами машинного обучения с целью проведения статистического анализа потребительского поведения покупателей, индивидуального продвижения товаров и услуг».
Если «третье лицо» уже известно, укажите его наименование и реквизиты — например, ООО «Пример», ОГРН 0987654321, ИНН 0896745231.
Если в состав собранных данных не входят специальные категории данных и вы не собираетесь звонить людям или отправлять сообщения с рекомендациями на их номер, достаточно обезличить собранные, чтобы передать их третьим лицам.
Вам придется получить явное разрешение (письменное или в электронном виде) и дать возможность его отозвать
Обезличьте данные перед их передачей третьему лицу
Вы — оператор персональных данных, а значит, должны «предпринимать меры по их защите... и несете риски нарушения их конфиденциальности». Обезличивание защитит вас от рисков, а конкретная личность пользователя все равно является избыточной для проведения исследований в сфере машинного обучения.
И последнее: закрепите в договоре с подрядчиком, что он также должен обеспечивать информационную безопасность при обработке персональных данных ваших пользователей.
Узнайте, насколько хорошо вы усвоили материал модуля: