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

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

Большинство проектов Data Science имеют схожий рабочий процесс / структуру, которые вы можете использовать для структурирования своих проектов. В приведенном ниже жизненном цикле описаны основные этапы, через которые обычно проходит проект по науке о данных. Это никогда не бывает линейным процессом, хотя он выполняется итеративно несколько раз, чтобы попытаться достичь наилучших возможных результатов, которые могут удовлетворить как клиентов, так и бизнес.

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

Выявление проблемы:

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

  1. Четко определите основную причину проблемы, определив истинную, лежащую в основе проблему.
  2. Разработайте подробную формулировку проблемы, которая включает в себя влияние проблемы на целевого клиента / покупателя.

КАК ВЫ ОПРЕДЕЛИТЬ ПРОБЛЕМУ?

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

Понимание бизнеса:

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

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

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

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

Вот где нам нужны правильные показатели:

· KPI (ключевой показатель эффективности)

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

· SLA (Соглашение об уровне обслуживания)

Соглашение об уровне обслуживания (SLA) определяет уровень обслуживания, ожидаемого покупателем от поставщика, с указанием показателей, по которым измеряется эта услуга. Например, если вы создаете очень сложный конвейер и у вас есть SLA в 100 миллисекунд, и вам нужно обрабатывать около 2000 транзакций в секунду. Вы должны убедиться, что соответствуете требованиям SLA и KPI, иначе модель не принесет вам никакой пользы.

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

Опять же, очень важное различие, о котором следует помнить, - это различие между алгоритмической целью и бизнес-целью. В большинстве случаев их можно запутать: ДЕЛОВАЯ ЦЕЛЬ ДОЛЖНА БЫТЬ ПРОСТОЙ И ЯСНОЙ В ДЕЛОВЫХ УСЛОВИЯХ.

Не должно быть:

«Уменьшение среднеквадратичной ошибки модели ecc…»

Вместо этого должно быть:

«Увеличьте мой доход на 5%»

«Привлечение большего количества клиентов и сокращение количества уходящих клиентов на 10%»

Получение данных

Как только мы поймем бизнес и его цели. Нам нужно понимать данные и все различные потребности. Сначала мы идем и собираем данные. Последние могут быть уже заказаны или централизованы, или нам, возможно, придется перейти к отдельной исходной системе и собрать данные, необходимые для нашей модели. Определение, достаточно ли данных для перехода к следующим шагам моделирования. Опять же, этот процесс часто повторяется. Это этап сбора данных. обычно это делается через конвейер ETL, ETL означает извлечение, преобразование и загрузка.

ETL

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

ETL - это трехэтапный процесс:

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

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

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

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

EDA (ИССЛЕДОВАТЕЛЬСКИЙ АНАЛИЗ ДАННЫХ)

Часть исследовательского анализа данных - это часть, в которой мы понимаем все, что касается данных, шаблонов и т. Д. Это делается с помощью статистики и визуализации данных. Здесь мы изучаем такую ​​информацию, как:

  • Как разные переменные связаны друг с другом и как выглядят их распределения?
  • Какова корреляция между переменными? Ищете доказательства того, насколько хорошо данные связаны с целевой переменной?

СТАТИСТИКА

  1. Мы используем описательную статистику, чтобы получить более полную картину данных, она описывает данные на основе их свойств.

Четыре основных типа описательной статистики:

  • Показатели частоты
  • Меры центральной тенденции
  • Меры дисперсии или вариации
  • Меры позиции

2. Мы используем выводную статистику для проверки распределений по наборам данных и выходным данным модели, наиболее часто используемыми методами являются:

  • Оценка параметра (ов)
  • Проверка статистических гипотез.

3. Наконец, мы применяем одномерный и многомерный анализ для выявления корреляции и тенденций между зависимыми и независимыми характеристиками:

ВИЗУАЛИЗАЦИЯ ДАННЫХ

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

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

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

Функциональная инженерия:

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

«Машинное обучение составляет от 20 до 30% всего жизненного цикла Data Science»

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

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

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

Это три основных метода:

  • Метод на основе фильтра: мы указываем некоторую метрику и основанные на ней функции фильтра, например: C корреляция, хи-квадрат, ANOVA.
  • Метод на основе оболочки: мы рассматриваем выбор набора функций как проблему поиска, например: Рекурсивное исключение функций, выбор вперед / назад .
  • Встроенный метод: мы используем алгоритмы, которые имеют встроенные методы выбора признаков, например, регрессия LASSO (L1) и RIDGE (L2).

Модельное обучение

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

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

Развертывание модели

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

Разработка модели сложна, но развертывание модели еще сложнее - Шривацан Сринивасан

Перед развертыванием мы должны убедиться, что мы протестируем следующее:

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

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

РАЗЛИЧНЫЕ СПОСОБЫ ВНЕДРЕНИЯ МОДЕЛИ В ПРОИЗВОДСТВО

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

Обычно существуют разные способы обучения и серверной модели в производственной среде:

  • ПОЕЗД: разовое, групповое и в режиме реального времени
  • СЕРВИС: пакетный, в режиме реального времени (триггер базы данных, Pub / Sub, веб-сервис, inApp)

РАЗОВОЕ ОБУЧЕНИЕ

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

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

ГРУППОВОЕ ОБУЧЕНИЕ

Пакетное обучение позволяет иметь постоянно обновляемую версию модели на основе последнего поезда.

ОБУЧЕНИЕ В РЕАЛЬНОМ ВРЕМЕНИ

При развертывании этого типа моделей в режиме реального времени требуется достаточная поддержка и мониторинг, поскольку модель может быть чувствительной к новым данным и шуму, а также необходимо постоянно контролировать производительность модели, этот тип обучения возможен с Модели машинного обучения онлайн », в частности:

  • K-средства (через мини-серию)
  • Линейная и логистическая регрессия (через стохастический градиентный спуск)
  • Наивный байесовский классификатор

ПАКЕТ против ПРОГНОЗИРОВАНИЯ В РЕАЛЬНОМ ВРЕМЕНИ

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

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

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

Пример прогноза в реальном времени или онлайн-вывода:

Расчетное время доставки UberEats генерируется всякий раз, когда пользователь заказывает еду через службу. Было бы невозможно создать пакет этих оценок и затем передать их пользователям. Представьте, что вы не знаете, сколько времени займет получение вашего заказа до после доставки еды. Другими примерами приложений, которые могут извлечь выгоду из онлайн-вывода, являются дополненная реальность, виртуальная реальность, человеко-компьютерные интерфейсы, беспилотные автомобили и любые приложения, ориентированные на потребителя, которые позволяют пользователям запрашивать модели в режиме реального времени.

Мониторинг модели

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

Здесь вступают в игру два важных компонента:

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

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

Что касается дрейфа данных, причины могут быть следующими:

  • Изменения в технологическом процессе выше по потоку, например, замена датчика, меняющего единицы измерения, неисправный датчик всегда показывает 0.
  • Естественный дрейф данных, например, изменение средней температуры в зависимости от времени года.
  • Изменения в соотношении функций.

Как вмешаться?

  • Удалите ошибочные ярлыки
  • Переобучить / откалибровать модель
  • Раннее обнаружение и устранение проблем с данными восходящего потока

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

Заключение

Это предложение для потока проектов по науке о данных и общей организационной структуры и ее взаимодействий. Очевидно, что существует множество вариаций этого цикла - из соображений сложности я не вдавался в подробности некоторых аспектов построения и оценки моделей, потому что в основном они часто обсуждаются во всех платформах Data Science и ML, поэтому я предпочел придерживаться других частей. Упаковать:

При внедрении убедитесь, что вы выбрали лучшее для своей проблемы, понимаете конкретные варианты использования и выбираете правильные метрики, начиная с бизнес-точки зрения: KPI и SLA, это поможет прийти к правильному подходу от разработки до развертывания моделей машинного обучения в производственной среде. Машинное обучение - это не решение для всего, если вы можете решить проблему более простым способом и не использовать Ml, вы должны выбрать это, чем проще решение, тем лучше. Надеюсь, этот пост окажется для вас информативным! Спасибо за чтение!

Что ты думаешь? Что-то я пропустил или мог бы улучшить? Пожалуйста, не стесняйтесь комментировать ниже. Я приветствую любые отзывы.

ССЫЛКИ