Возможность предсказать, что конкретный клиент подвергается высокому риску оттока, в то время как еще есть время что-то с этим сделать, представляет собой огромный потенциальный источник дохода для каждого онлайн-бизнеса. В зависимости от отрасли и целей бизнеса постановка задачи может быть многоуровневой. Ниже приведены некоторые бизнес-цели, основанные на этой стратегии:
В этом посте обсуждается, как можно организовать сквозную модель прогнозирования оттока клиентов на каждом этапе: подготовка данных, экспериментирование с базовой моделью и оптимизацией гиперпараметров (HPO), обучение и настройка, а также регистрация лучшей модели. Вы можете управлять своим Создатель мудреца Амазонки рабочие процессы обучения и вывода с использованием Студия Amazon SageMaker и SDK SageMaker Python. SageMaker предлагает все инструменты, необходимые для создания высококачественных решений для обработки данных.
SageMaker помогает специалистам по данным и разработчикам быстро готовить, создавать, обучать и развертывать высококачественные модели машинного обучения (ML), объединяя широкий набор возможностей, специально созданных для ML.
Studio предоставляет единый визуальный веб-интерфейс, с помощью которого вы можете выполнять все этапы разработки машинного обучения, повышая производительность команды по обработке данных до 10 раз.
Конвейеры Amazon SageMaker — это инструмент для построения конвейеров машинного обучения, использующий преимущества прямой интеграции с SageMaker. С помощью Pipelines вы можете легко автоматизировать этапы построения модели ML, каталогизировать модели в реестре моделей и использовать один из нескольких шаблонов, предоставленных в SageMaker Projects, для настройки непрерывной интеграции и непрерывной доставки (CI/CD) для конечного продукта. -завершение жизненного цикла машинного обучения в масштабе.
После обучения модели вы можете использовать Amazon SageMaker Уточнить выявлять и ограничивать предвзятость и объяснять прогнозы заинтересованным сторонам бизнеса. Вы можете поделиться этими автоматическими отчетами с бизнес- и техническими группами для последующих целевых кампаний или для определения функций, которые являются ключевыми отличительными чертами пожизненной ценности клиента.
К концу этого поста у вас должно быть достаточно информации, чтобы успешно использовать этот комплексный шаблон с помощью Pipelines для обучения, настройки и развертывания собственного варианта использования прогнозной аналитики. Полная инструкция доступна на сайте Репо GitHub.
В этом решении вашей отправной точкой является интегрированная среда разработки (IDE) Studio для быстрого экспериментирования. Studio предлагает среду для комплексного управления Pipelines. С помощью Studio вы можете обойти Консоль управления AWS для управления всем вашим рабочим процессом. Дополнительные сведения об управлении конвейерами из Studio см. Просмотр, отслеживание и выполнение конвейеров SageMaker в SageMaker Studio.
На следующей диаграмме показана высокоуровневая архитектура рабочего процесса обработки данных.
После создания домена Studio выберите свое имя пользователя и выберите Открытая студия. Откроется веб-IDE, позволяющая хранить и собирать все, что вам нужно — будь то код, блокноты, наборы данных, настройки или папки проектов.
Pipelines напрямую интегрирован с SageMaker, поэтому вам не нужно взаимодействовать с какими-либо другими сервисами AWS. Вам также не нужно управлять какими-либо ресурсами, поскольку Pipelines — это полностью управляемая служба, а это означает, что она создает ресурсы и управляет ими за вас. Дополнительную информацию о различных компонентах SageMaker, которые являются как автономными API Python, так и интегрированными компонентами Studio, см. Страница сервиса SageMaker.
В этом случае вы используете следующие компоненты для полностью автоматизированного процесса разработки модели:
Конвейер SageMaker — это серия взаимосвязанных шагов, определяемых определением конвейера JSON. Это определение конвейера кодирует конвейер с помощью направленного ациклического графа (DAG). Эта группа обеспечения доступности баз данных предоставляет информацию о требованиях и отношениях между каждым этапом вашего конвейера. Структура DAG конвейера определяется зависимостями данных между этапами. Эти зависимости данных создаются, когда свойства выходных данных шага передаются в качестве входных данных на другой шаг.
В этом посте наш вариант использования представляет собой классическую задачу машинного обучения, целью которой является понять, какие различные маркетинговые стратегии, основанные на поведении потребителей, мы можем применить, чтобы повысить удержание клиентов в конкретном розничном магазине. На следующей диаграмме показан полный рабочий процесс машинного обучения для варианта использования прогнозирования оттока.
Давайте подробно рассмотрим процесс разработки ускоренного рабочего процесса ML.
Чтобы следовать этому сообщению, вам необходимо скачать и сохранить образец набора данных по умолчанию Простой сервис хранения Amazon (Amazon S3), связанный с вашим сеансом SageMaker, и в сегменте S3 по вашему выбору. Для быстрого экспериментирования или построения базовой модели вы можете сохранить копию набора данных в своем домашнем каталоге в папке Эластичная файловая система Amazon (Amazon EFS) и следуйте записной книжке Jupyter. Customer_Churn_Modeling.ipynb
.
На следующем снимке экрана показан набор образцов с сохраненной целевой переменной 1, если предполагается, что клиент активен, или 0 в противном случае.
Запустите следующий код в блокноте Studio, чтобы предварительно обработать набор данных и загрузить его в свою корзину S3:
import boto3
import pandas as pd
import numpy as np ## Preprocess the dataset
def preprocess_data(file_path): df = pd.read_csv(file_path) ## Convert to datetime columns df["firstorder"]=pd.to_datetime(df["firstorder"],errors='coerce') df["lastorder"] = pd.to_datetime(df["lastorder"],errors='coerce') ## Drop Rows with null values df = df.dropna() ## Create Column which gives the days between the last order and the first order df["first_last_days_diff"] = (df['lastorder']-df['firstorder']).dt.days ## Create Column which gives the days between when the customer record was created and the first order df['created'] = pd.to_datetime(df['created']) df['created_first_days_diff']=(df['created']-df['firstorder']).dt.days ## Drop Columns df.drop(['custid','created','firstorder','lastorder'],axis=1,inplace=True) ## Apply one hot encoding on favday and city columns df = pd.get_dummies(df,prefix=['favday','city'],columns=['favday','city']) return df ## Set the required configurations
model_name = "churn_model"
env = "dev"
## S3 Bucket
default_bucket = "customer-churn-sm-pipeline"
## Preprocess the dataset
storedata = preprocess_data(f"s3://{default_bucket}/data/storedata_total.csv")
Благодаря ноутбукам Studio с эластичными вычислениями вы теперь можете легко выполнять несколько заданий по обучению и настройке. В этом случае вы используете встроенный алгоритм XGBoost SageMaker и SageMaker HPO с целевой функцией как "binary:logistic"
и "eval_metric":"auc"
.
def split_datasets(df): y=df.pop("retained") X_pre = df y_pre = y.to_numpy().reshape(len(y),1) feature_names = list(X_pre.columns) X= np.concatenate((y_pre,X_pre),axis=1) np.random.shuffle(X) train,validation,test=np.split(X,[int(.7*len(X)),int(.85*len(X))]) return feature_names,train,validation,test # Split dataset
feature_names,train,validation,test = split_datasets(storedata) # Save datasets in Amazon S3
pd.DataFrame(train).to_csv(f"s3://{default_bucket}/data/train/train.csv",header=False,index=False)
pd.DataFrame(validation).to_csv(f"s3://{default_bucket}/data/validation/validation.csv",header=False,index=False)
pd.DataFrame(test).to_csv(f"s3://{default_bucket}/data/test/test.csv",header=False,index=False)
Обучите, настройте и найдите лучшую модель-кандидат с помощью следующего кода:
После того, как вы установите базовый уровень, вы можете использовать Amazon SageMaker Отладчик для автономного анализа модели. Отладчик — это функция SageMaker, которая автоматически обеспечивает видимость процесса обучения модели для анализа в реальном времени и в автономном режиме. Отладчик через определенные промежутки времени сохраняет внутреннее состояние модели, которое вы можете анализировать в режиме реального времени во время обучения и в автономном режиме после его завершения. В этом случае вы используете инструмент объяснения SHAP (SHapley Additive exPlanation) и встроенную интеграцию SHAP с отладчиком. Обратитесь к следующему ноутбук для подробного анализа.
Следующий сводный график объясняет положительные и отрицательные связи предикторов с целевой переменной. Например, верхняя переменная здесь: esent
, определяется как количество отправленных электронных писем. Этот график состоит из всех точек данных в обучающем наборе. Синий цвет означает перетаскивание окончательного результата в класс 0, а розовый — в класс 1. Ключевые влияющие функции ранжируются в порядке убывания.
Теперь вы можете перейти к этапу развертывания и управления рабочего процесса машинного обучения.
Разрабатываем и автоматизируем рабочий процесс
Начнем со структуры проекта:
- /модель оттока клиентов - Название проекта
- /данные – Набор данных
- /трубопроводы – Код для компонентов пайплайна SageMaker
- SageMaker_Pipelines_project.ipynb – Позволяет создавать и запускать рабочий процесс ML
- Customer_Churn_Modeling.ipynb – Блокнот для разработки базовой модели
Под <project-name>/pipelines/customerchurn
, вы можете увидеть следующие скрипты Python:
- Препроцесс.py – Интегрируется с SageMaker Processing для разработки функций.
- Оценить.py – Позволяет рассчитывать метрики модели, в данном случае auc_score.
- Generate_config.py – Позволяет динамическую настройку, необходимую для последующего задания Clarify для объяснимости модели.
- Трубопровод.py – Шаблонизированный код для рабочего процесса Pipelines ML.
Давайте рассмотрим каждый шаг в DAG и то, как они выполняются. Шаги аналогичны тем, которые мы выполняли при первой подготовке данных.
Выполните готовность данных с помощью следующего кода:
Обучите, настройте и найдите лучшую модель-кандидат:
Вы можете добавить шаг настройки модели (TuningStep) в конвейере, который автоматически запускает задание по настройке гиперпараметров (см. следующий код). Настройка гиперпараметров находит лучшую версию модели путем выполнения множества заданий обучения в наборе данных с использованием алгоритма и указанных вами диапазонов гиперпараметров. Затем вы можете зарегистрировать лучшую версию модели в реестре модели, используя шаг RegisterModel.
После настройки модели в зависимости от показателей цели задания по настройке вы можете использовать логику ветвления при организации рабочего процесса. Для этого поста условный шаг проверки качества модели следующий:
Лучшая модель-кандидат регистрируется для пакетной оценки с помощью шага RegisterModel:
Теперь, когда модель обучена, давайте посмотрим, как Clarify помогает нам понять, на каких функциях модели основывают свои прогнозы. Вы можете создать analysis_config.json
файл динамически для каждого рабочего процесса, запускаемого с использованием generate_config.py
полезность. Вы можете создавать версии и отслеживать файл конфигурации для каждого конвейера. runId
и сохраните его в Amazon S3 для дальнейшего использования. Инициализируйте dataconfig
и modelconfig
файлы следующим образом:
После добавления шага «Уточнение» в качестве задания постобработки с помощью sagemaker.clarify.SageMakerClarifyProcessor
в конвейере вы можете увидеть подробный отчет об анализе функций и отклонений для каждого запуска конвейера.
В качестве последнего шага рабочего процесса конвейера вы можете использовать TransformStep
шаг для автономной оценки. Пройдите в transformer instance
и TransformInput
с batch_data
параметр конвейера, определенный ранее:
Наконец, вы можете запустить новый конвейер, выбрав Начать казнь в интерфейсе Studio IDE.
Вы также можете описать запуск конвейера или запустить его, используя следующее: ноутбук. На следующем снимке экрана показан наш результат.
Вы можете запланировать запуск конвейера построения моделей SageMaker, используя Amazon EventBridge. Поддерживаются конвейеры построения моделей SageMaker. в качестве цели в Amazon EventBridge. Это позволяет вам запускать конвейер на основе любого события в вашей шине событий. EventBridge позволяет автоматизировать запуск конвейера и автоматически реагировать на такие события, как задание обучения или изменения состояния конечной точки. События включают в себя загрузку нового файла в корзину S3, изменение статуса конечной точки SageMaker из-за отклонения и Amazon Простая служба уведомлений (Amazon SNS).
Заключение
В этом посте объясняется, как использовать SageMaker Pipelines с другими встроенными функциями SageMaker и алгоритмом XGBoost для разработки, итерации и развертывания наилучшей модели-кандидата для прогнозирования оттока. Инструкции по реализации этого решения см. Репо GitHub. Вы также можете клонировать и расширить это решение, добавив дополнительные источники данных для переобучения модели. Мы рекомендуем вам связаться и обсудить варианты использования машинного обучения с вашим менеджером по работе с клиентами AWS.
Дополнительные ссылки
Для получения дополнительной информации см. Следующие ресурсы:
Об авторах
Гаятри Ганакота — инженер по машинному обучению в AWS Professional Services. Она увлечена разработкой, внедрением и объяснением решений AI/ML в различных областях. До этой должности она руководила множеством инициатив в качестве специалиста по данным и инженера по машинному обучению в ведущих мировых компаниях в финансовой и розничной сфере. Она имеет степень магистра компьютерных наук со специализацией в области обработки данных в Университете Колорадо, Боулдер.
Сарита Джоши — старший специалист по данным в компании AWS Professional Services, специализирующейся на поддержке клиентов в различных отраслях, включая розничную торговлю, страхование, производство, путешествия, медико-биологические науки, средства массовой информации и развлечения, а также финансовые услуги. Она имеет многолетний опыт работы консультантом, консультируя клиентов во многих отраслях и технических областях, включая AI, ML, аналитику и SAP. Сегодня она увлеченно работает с клиентами над разработкой и масштабным внедрением решений машинного обучения и искусственного интеллекта.
- "
- 100
- 107
- 39
- Учетная запись
- активный
- дополнительный
- плюс
- AI
- алгоритм
- Все
- Альфа
- Amazon
- Создатель мудреца Амазонки
- анализ
- аналитика
- API
- архитектура
- Автоматизированный
- AWS
- Базовая линия
- ЛУЧШЕЕ
- строить
- Строительство
- автобус
- бизнес
- Кампании
- случаев
- изменение
- Город
- клиентов
- код
- Колорадо
- Column
- Вычисление
- Информатика
- консультант
- потребитель
- Потребительское поведение
- Container
- Удержание клиентов
- Клиенты
- DAG
- данным
- наука о данных
- ученый данных
- поставка
- подробность
- Дев
- развивать
- застройщиков
- Развитие
- доменов
- Падение
- Конечная точка
- инженер
- Проект и
- Развлечения
- Окружающая среда
- События
- События
- выполнение
- опыт
- Объяснимость
- Особенность
- Особенности
- финансовый
- финансовые услуги
- находит
- First
- следовать
- полный
- функция
- Глобальный
- здесь
- High
- Главная
- Как
- How To
- HTTPS
- огромный
- определения
- В том числе
- Увеличение
- промышленности
- промышленность
- информация
- страхование
- интеграции.
- IT
- работа
- Джобс
- Jupyter Notebook
- Основные
- большой
- изучение
- привело
- Медико-биологическая промышленность
- обучение с помощью машины
- управление
- производство
- Маркетинг
- Медиа
- средний
- Метрика
- ML
- модель
- ноутбуки
- уведомление
- Предложения
- онлайн
- Интернет бизнес
- Откроется
- заказ
- Другое
- прогноз
- Predictions
- Predictive Analytics
- производительность
- Проект
- проектов
- Питон
- Готовность
- реального времени
- Отношения
- отчету
- Отчеты
- Требования
- Полезные ресурсы
- Итоги
- розничный
- переквалификация
- доходы
- Снижение
- Run
- Бег
- sagemaker
- живица
- Шкала
- Наука
- НАУКА
- Ученые
- SDK
- Серии
- Услуги
- набор
- Поделиться
- просто
- So
- Решения
- Space
- раскол
- Начало
- Область
- заявление
- Статус:
- диск
- магазин
- Стратегия
- Поддержанный
- цель
- Технический
- тестXNUMX
- время
- топ
- Темы
- трек
- Обучение
- трансформация
- путешествовать
- Университет
- us
- утилита
- ценностное
- видимость
- в
- рабочий
- X
- лет