Обложка: Быстрое прототипирование в проектах анализа данных

Быстрое прототипирование в проектах анализа данных

Николай Князев
Николай Князев

Архитектор машинного обучения в Softline Digital

Проекты Data Science, как следует из названия, имеют научную составляющую. Как правило, она выражается в построении модели зависимости целевой переменной (цены товара, вероятности брака детали или покупки) от имеющихся данных (информации о покупках, качестве исходных материалов и так далее).

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

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

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

Таким образом, полный список целей для прототипирования включил в себя:

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

В связи с этим, при создании прототипа, стоит обратить внимание на следующее:

Во-первых, недостаточно просто сделать работающий прототип модели, необходимо также объяснить, почему эта модель работает тем или иным образом. Говоря на языке машинного обучения, нужно определить важность характеристик (feature importance) для модели в целом и каждого случая в частности.

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

Во-вторых, всегда необходима даже минимальная, но работающая визуализация. Существуют мнения, что некоторые аналитики данных не используют Jupyter Notebook, а сразу пишут решение на движке визуализации streamlit или dash.

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

Третье — ограничения прототипа. Это самый сложный момент. Как одновременно продемонстрировать эффект, но не пытаться сделать всю работу? Очевидно, что за рамками прототипа лежат вопросы интеграции и устойчивости. Но даже если мы говорим только о модели — как её ограничить?

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

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

Заключение

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

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

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

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

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

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

Хинт для программистов: если зарегистрируетесь на соревнования Huawei Cup, то бесплатно получите доступ к онлайн-школе для участников. Можно прокачаться по разным навыкам и выиграть призы в самом соревновании.

Перейти к регистрации