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

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

Эта статья на Medium будет направлена ​​на то, чтобы продемонстрировать, как использовать CRISP-DM, на примере моего опыта работы исследователем данных в мире розничной торговли. Наука о данных не идет по тому же пути, что и традиционные проекты, и несколько нетрадиционна, поэтому я рекомендую прочитать эту статью всем, кто занимается проектами по науке о данных.

Обзор CRISP-DM

На приведенной ниже диаграмме показаны ключевые этапы CRISP-DM.

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

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

Вышеупомянутые шаги CRISP-DM могут показаться теоретически достаточно простыми, но когда дело доходит до реального применения, есть некоторые кривые шары, которые могут сорвать проекты по науке о данных. Чтобы узнать больше о реальных приложениях и проблемах, которые могут возникнуть на каждом этапе, читайте дальше! :)

Тематическое исследование

Фон

Давайте установим сцену.

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

«Сколько бутербродов с огурцом продаст магазин А за 5 дней?» - умножьте этот вопрос на 30 с лишним товаров в сотнях магазинов.

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

Итак, давайте посмотрим, как мы можем использовать шаги CRISP-DM для успешного выполнения этого проекта по науке о данных :)

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

Этот этап является основой вашего проекта, и, как и дом, без хорошего фундамента ваш проект рухнет, если вы пропустите этот этап или поторопитесь с ним!

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

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

Бизнес-цель

После обсуждения с директором из Великобритании (главным заинтересованным лицом) они хотели:

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

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

Критерии успеха бизнеса

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

  1. Полностью автоматизированные ежедневные прогнозы
  2. Совместимость с существующими бизнес-системами
  3. Лучшая точность, чем текущий метод
  4. Масштабируемость

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

Обзор ресурсов

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

  • Автоматизируйте процесс определения количества каждого товара, которое будет продаваться в день, на четыре дня вперед для 40 магазинов.

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

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

Цель решения для обработки данных

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

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

  1. Решение DS должно будет использовать внутренние инструменты автоматизации, такие как задания агента SQL Server.
  2. Выходные данные модели DS должны храниться в базе данных SQL для обеспечения совместимости.
  3. Решение DS должно будет использовать весь спектр алгоритмов машинного обучения с использованием пакетов Python.
  4. Решение DS потребует мощности для обработки больших данных

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

Критерии успеха решения для обработки данных

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

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

План проекта

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

Для этого проекта мы указали ориентировочное время завершения 6 месяцев. Предполагаемый график проекта был показан на дорожной карте.

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

Понимание данных

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

Сбор данных

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

  1. Исторические продажи
  2. Структура продаж в час, день недели и сезон (квартал)
  3. Погода
  4. Праздничные дни
  5. Каникулы
  6. Тип и расположение магазина

Из приведенного выше списка мы определили, что только данные для 1, 2 и 6 были доступны и доступны. Точки данных с 3 по 5 были недоступны, но их можно было получить.

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

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

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

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

Описание данных

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

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

Изучение данных

Есть две причины для проведения исследовательского анализа данных (EDA);

  1. Проверка качества данных. Для каждой переменной в вашем наборе данных вам необходимо будет провести тщательную проверку качества данных, выявляя отсутствующие и аномальные точки данных. Это можно сделать, просмотрев распределения и сводки полей, которые могут выявить проблемы с качеством данных.
  2. Определите полезные переменные. Используйте графики корреляции и визуальные эффекты, чтобы определить переменные, которые имеют сильную корреляцию с переменной, которую вы пытаетесь предсказать. На Python есть различные инструменты, такие как Seaborne, которые упрощают процесс исследования данных.

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

  1. Продажи за последние 4 недели
  2. Температура
  3. Дождь или нет дождя
  4. Праздничные дни
  5. Каникулы
  6. Тип магазина

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

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

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

Подготовка данных

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

  1. Выбор. Предыдущий этап (EDA) дал бы вам представление о переменных, которые, по вашему мнению, будут полезны. На этом этапе вам нужно будет доработать решение и предоставить небольшое обоснование его использования.
  2. Чистота. Опять же, EDA выделила бы переменные с проблемами качества данных. На этом шаге вам нужно будет очистить переменные и учесть проблемы с DQ. Это может включать замену аномальных/отсутствующих точек данных средним, медианным или случайным числом в пределах 3 стандартных отклонений. Обязательно уделите этому шагу нужное количество времени!

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

  • Построить. На этом этапе вы будете создавать переменные или получать переменные из существующих переменных. Например, у вас может быть два поля даты; дата выпуска продукта и последний купленный продукт, вместо того, чтобы указывать фактические поля даты, может быть лучше указать разницу в днях между датами. Создание данных заключается в обеспечении того, чтобы ваши переменные вводились в модель таким образом, чтобы они могли иметь наибольшую ценность.
  • Формат. Форматирование можно рассматривать как очистку данных, поскольку часто переменные в наборах данных имеют неправильный формат или формат, который не подходит для моделирования. Например, переменная «Пол», содержащая значения «Мужской» и «Женский», может быть не лучшим форматом для модели, чтобы переварить эту переменную. В качестве альтернативы форматирование этой переменной в виде двоичного флага, т. е. 1 для женского пола и 0 для мужского пола, было бы лучше. Форматирование также включает преобразование переменных из строки в целые числа, где это необходимо.
  • Интеграция. В EDA мы определили четыре переменные, которые хотели включить в нашу модель. Все они находятся в отдельных наборах данных и должны быть объединены в один набор данных, который будет загружен в модель.

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

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

Моделирование

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

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

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

  • Линейная регрессия
  • Древо решений
  • Случайный лес
  • Повышение градиента (XGBoost)

Из вышесказанного первоначальным явным победителем стала модель XGBoost с точки зрения точности и скорости. Поэтому я выбрал этот алгоритм для проведения дальнейших экспериментов (это всего лишь один из подходов).

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

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

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

Оценка

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

Мы сузили выбранную модель до модели XGBoost, которая имела наилучшую точность. Модель была выбрана, поскольку она была масштабируемой, имела разумное время выполнения и точность на 5 % выше, чем текущий метод настройки производства. Как показано в таблице ниже, выбранная модель XGBoost соответствует большинству критериев успеха.

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

Теперь, когда мы выбрали нашу модель и удовлетворены ее работой, мы можем перейти к следующему этапу.

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

Развертывание

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

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

Для этого проекта было важно:

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

Поскольку бизнес-системы были основаны на SQL, было сочтено целесообразным использовать хранимые процедуры SQL и задания агента SQL Server для выполнения сценариев Python и проведения процесса ETL для передачи выходных данных модели в существующие бизнес-системы. Этот план был проверен и утвержден системным менеджером организации и менеджером хранилища данных.

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

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

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

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

При первом запуске развернутой модели вам также необходимо проверить, является ли точность модели такой же в реальной среде. Существуют различные способы оценки развернутой модели, такие как проведение A/B-тестирования или пробный прогон. Для этого проекта мы оценили, были ли результаты модели на 5% лучше, чем предыдущий метод, используемый магазинами.

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

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

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

Заключение

Вот и все! На этом мы подошли к концу тематического исследования CRISP-DM. Я надеюсь, что вы нашли это полезным и сможете успешно применить методологию в своем следующем проекте по науке о данных! :)