Наука о данных. Модуль 5

Как готовят данные для задач машинного обучения

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

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

В этом видео Сергей Носов расскажет, какие обозначения для разных типов данных применяются в «Ростелекоме». А затем Элен Теванян объяснит, с какими трудностями сталкиваются дата-сайентисты при знакомстве с данными, которые есть у бизнеса.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В чем сложность с персональными данными?

По закону под персональными данными понимается «любая информация, относящаяся к прямо или косвенно определенному или определяемому физическому лицу». В зависимости от ситуации персональными данными может считаться не только информация, которая прямо указывает на определенную личность (например, комбинация «Ф.И.О., место работы и проживания»), но и почти любые косвенные сведения, которые могут указать на личность в каком-то контексте. Поэтому лучшее, что вы можете сделать, — обсудить проект с квалифицированным юристом, чтобы максимально обезопасить себя, коллег и партнеров от не всегда очевидных юридических рисков.

Ниже мы собрали несколько базовых советов на разные случаи, которыми поделился преподаватель факультета права Высшей школы экономики Михаил Журавлев. Но помните: незнание закона не освобождает от ответственности, а каждый случай индивидуален, поэтому лучше проконсультироваться со специалистом.

Вы используете персональные данные, накопленные вашей компанией

  • В вашем соглашении об обработке персональных данных должно быть указано, что данные могут использоваться для задач машинного обучения (если нет — внесите эту информацию с юристом).
  • В соглашении также указаны цели обработки данных, и ваш проект подходит под эти цели, либо дополнительные цели можно безболезненно внести с юристом.

Вы используете данные от партнеров либо забираете их из внешних источников

  • Удостоверьтесь, что данные получены путем сознательного согласия: люди могли узнать, для каких целей собираются данные, что они могли быть переданы вам, и что люди могли отозвать согласие на обработку.
  • Проверьте, что вы не нарушаете авторские и смежные права — в первую очередь это касается фото, видео, литературных и научных текстов, информации со сторонних сайтов (владельцы этих произведений и источников могли явно указать, в каких случаях согласны на использование данных в лицензии creative commons).
  • Также вы не можете нарушать «исключительное право изготовителя базы данных» или пользовательских соглашений сайтов, на которых вы берете информацию для коммерческого проекта. Часто персональные данные пользователей или некая уникальная информация общедоступны — например, это открытые профили людей в социальных сетях или расписание и стоимость авиаперелетов. Однако то, что информация публична, еще не повод для ее парсинга (синтаксического анализа): можно переписывать и публиковать чужие цены, а вот насчет всего остального стоит интересоваться у юриста (почитайте об иске социальной сети «Вконтакте» против ООО «Дабл» или Ryanair к PR Aviation, если не верите).
  • Постарайтесь договориться и получить согласие на использование чужой интеллектуальной собственности, либо будьте готовы обосновать, почему «использовали несущественную часть базы данных» или «использовали данные в информационных, научных, учебных или культурных целях».

Вы создаете скоринговый сервис или иную систему, которая автоматизирует принятие решений и сообщает о них посетителю сайта

  • Если у вас нет письменного согласия человека, стоит внести в принятие решения человеческий фактор (например, назвать решение системы предварительным и дополнить встречей, звонком или письмом от человека).
  • Посетитель может заявить возражение против решения автоматической системы.
  • На сайте разъяснен порядок принятия решения на основании автоматизированной обработки персональных данных, возможные юридические последствия такого решения, порядок защиты человеком своих прав и законных интересов.

Если вы не можете получить согласие на обработку данных

  • Не используйте их, если речь идет о биометрии человека, информации о состоянии здоровья, интимной жизни, религиозных, политических и иных убеждениях человека и иных случаях, особо оговоренных в законах.
  • В иных случаях вы можете использовать данные: для статистических и исследовательских целей, если обезличите их настолько, что по ним нельзя будет установить личность; в редких случаях — если это требуется для исполнения договора либо защиты жизни и здоровья человека (и вы можете доказать это).

В любом случае

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

Как сделать все правильно, если вы передаете данные для анализа другому юрлицу

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

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

Запросите явное согласие на сбор и обработку персональных данных

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

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

Укажите в согласии цель использования данных и закрепите возможность привлекать к их обработке третьих лиц

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

Если «третье лицо» уже известно, укажите его наименование и реквизиты — например, ООО «Пример», ОГРН 0987654321, ИНН 0896745231.

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

Вам придется получить явное разрешение (письменное или в электронном виде) и дать возможность его отозвать

  • Если вы собираете специальные категории данных — напомним, это сведения о расовой, национальной принадлежности, политических взглядах, религиозных или философских убеждениях, состоянии здоровья, судимости, а также биометрия.
  • Если вы собираете любые данные, чтобы потом напрямую связываться с людьми (например, звонить, отправлять СМС-предложения и т. д.) и эффективнее предлагать им товары и услуги.

Обезличьте данные перед их передачей третьему лицу

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

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

Узнайте, насколько хорошо вы усвоили материал модуля:

Нашли опечатку? Выделите фрагмент и нажмите Ctrl+Enter.
Неустойчивый оборот

Угадайте, из-за чего жидкость теряет стабильность