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

Лучше всего начать с объяснения того, что такое машинное обучение. Проще говоря, машинное обучение — это ветвь искусственного интеллекта, которая фокусируется на создании систем, использующих математические алгоритмы для изучения данных и прогнозирования аналогичных случаев в новой точке данных. Существует три основных типа алгоритмов: обучение с учителем, обучение без учителя и обучение с подкреплением. Тип используемого алгоритма зависит от структуры/объема данных и варианта использования, к которому вы хотите его применить.

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

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

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

ШАГ ЗА ШАГОМ ПОСТРОЕНИЯ МОДЕЛИ С НУЛЯ

ШАГ 1. Извлеките/загрузите предоставленные необработанные данные/набор данных.

ШАГ 2. Откройте блокнот Jupyter и импортируйте все необходимые библиотеки.

ШАГ 3. Импортируйте данные в блокнот Jupyter. В предоставленных/предоставленных данных у нас есть как тестовые, так и обучающие данные.

ШАГ 4. На этом этапе важно просмотреть набор данных и переменные, присутствующие в импортированном наборе данных. Набор данных содержит эти переменные, как описано ниже:

  • CustomerId: сгенерированный системой уникальный идентификатор клиента.
  • Фамилия: Фамилия клиента
  • CreditScore: баллы, сгенерированные системой
  • География: Страна Заказчика
  • Пол
  • Возраст
  • Стаж: как долго он / она был клиентом
  • Баланс: доступный баланс
  • NumOfProducts: количество купленных товаров.
  • HasCrCard: есть ли у клиента кредитная карта
  • IsActiveMember: указывает, активен клиент или нет.
  • EstimatedSalary: предполагаемая зарплата клиента.

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

ШАГ 5. Проверьте наличие отсутствующих значений в наборе данных. В нашем наборе данных, полученном от группы компаний ZOC, нет пропущенных значений.

ШАГ 6 (ЭТАП ПРЕДВАРИТЕЛЬНОЙ ОБРАБОТКИ ДАННЫХ):необходимо преобразовать все строковые данные в числа. В нашем наборе данных есть три переменные со строковыми данными: фамилия, пол, география. Причина такого преобразования заключается в том, что наша машинная модель понимает только числа/цифры, поэтому все строковые данные должны быть преобразованы в цифры.

Для этого вам необходимо импортировать Label Encoder из sklearn в свой блокнот Jupyter. Это преобразование должно быть выполнено как в тестовых, так и в обучающих данных.

ШАГ 7 (ВЫБОР ФУНКЦИИ):Этот этап включает в себя поиск корреляции между переменными, корреляция может быть как отрицательной, так и положительной. Это необходимо для того, чтобы определить, какие функции/переменные будут иметь значение для построения модели, а какие следует удалить, чтобы избежать систематической ошибки.

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

ШАГ 8. Разделите значения на зависимые и независимые переменные как для тестового набора данных, так и для набора данных обучения. На этом шаге вы выбираете функции, необходимые для вашей модели, на основе корреляции, наблюдаемой на предыдущем шаге.

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

СОЗДАНИЕ МОДЕЛИ

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

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

ШАГ 9. Импортируйте классификатор Random Forest из sklearn

ШАГ 10. Подберите свою модель, а затем сделайте прогнозы. После запуска прогнозов поместите их во фрейм данных (таблицу) и сохраните в именованный файл .csv.

ШАГ 11. Затем вы оцениваете свою модель, чтобы убедиться, что ее производительность достаточно высока, и если да, то ее можно развертывать. Если нет, вы продолжаете обучать свою модель, пока ее производительность не станет удовлетворительной.

Примечание.

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

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

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