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

УСТАНОВИТЬ БИБЛИОТЕКИ

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

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

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

Чтобы получать самую свежую информацию о курсах валют, мы установили пакет forex_python.

Наконец, мы установили pandas_profiling, библиотеку Python с открытым исходным кодом, которая создает отчет о кадре данных pandas. Отчет предоставляет информацию о данных, таких как отсутствующие значения, типы данных и корреляции между переменными.

ИМПОРТ БИБЛИОТЕКИ:

После того, как мы установили необходимые пакеты, мы можем импортировать их в нашу записную книжку. Мы начали с импорта pandas как pd и numpy как np, которые мы будем использовать для загрузки, очистки и управления нашими данными.

Чтобы получить самую свежую информацию о курсах валют, мы импортировали CurrencyRates из пакета forex_python.converter, который предоставляет доступ к данным о курсах валют. Мы также импортировали format_currency из пакета babel.numbers, который будем использовать для форматирования значений валюты.

Для визуализации мы импортировали matplotlib как mpl, matplotlib.pyplot как plt и seaborn как sn. Эти пакеты позволят нам создавать визуализации наших данных, такие как диаграммы рассеяния и гистограммы.

Мы также импортировали несколько библиотек и метрик машинного обучения, в том числе OneHotEncoder, train_test_split, StandardScaler, RandomForestClassifier,classification_report, precision_score, precision_score, Recall_score, f1_score, LogisticRegression и GradientBoostingClassifier. Мы будем использовать эти библиотеки и метрики для создания и оценки наших моделей машинного обучения.

Для обработки наших функций мы импортировали StandardScaler, RobustScaler, OneHotEncoder, LabelEncoder, Binarizer, GridSearchCV и StratifiedKFold из пакетов sklearn.preprocessing и sklearn.model_selection.

Наконец, мы импортировали os, warnings, patoolib, pickle и Pipeline — другие пакеты, которые мы будем использовать для управления нашими данными и построения моделей машинного обучения.

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

ЗАГРУЗИТЬ ДАННЫЕ

Для загрузки данных мы использовали метод pandas read_csv. Данные были размещены на Google Диске, поэтому мы получили к ним доступ, используя URL-адрес файла. С помощью метода read_csv мы создали фрейм данных pandas, содержащий данные об оттоке клиентов с 21 столбцом и более чем 7000 строк. Эти столбцы включают идентификатор клиента, пол, статус пожилого гражданина, статус партнера, срок пребывания в должности, интернет-сервис, тип контракта, способ оплаты, ежемесячные платежи, общие платежи и статус оттока (независимо от того, покинул ли клиент сервис).

ЭДА

При изучении набора данных становится очевидным, что в нем всего 21 столбец и 7043 строки. Каждому клиенту присваивается уникальный идентификатор, известный как customerID, и записываются его демографические данные и данные об использовании услуг, включая пол, возраст, срок пребывания в должности, тип интернет-услуги и ежемесячные платежи. Целевая переменная «Отток» указывает, покинул ли клиент компанию или нет. Набор данных не содержит пропущенных значений, но мы должны исследовать столбец «TotalCharges», так как это тип объекта, а не float64. Важно убедиться, что в этом столбце нет недопустимых значений, таких как пробелы или текстовые символы. Кроме того, некоторые столбцы имеют двоичные значения «Да» или «Нет», которые, возможно, потребуется преобразовать в числовые значения для облегчения моделирования.

ПРОФИЛИРОВАНИЕ PANDAS

Основываясь на отчете о профилировании панд, у нас есть следующая информация о наборе данных:

  • Набор данных содержит информацию о 7043 клиентах.
  • В наборе данных нет пропущенных значений.
  • Набор данных содержит 21 переменную, включая целевую переменную («Отток»).
  • Имеется 4 логических переменных, 14 категориальных переменных и 2 числовые переменные.
  • Категориальные переменные имеют различные уровни кардинальности. Переменная «customerID» имеет наибольшую мощность с 7043 уникальными значениями.
  • Переменная «PhoneService» имеет высокую корреляцию с целевой переменной («Churn»).
  • Переменные «MultipleLines», «InternetService», «OnlineSecurity», «OnlineBackup», «DeviceProtection», «TechSupport», «StreamingTV», «StreamingMovies», «Contract» и «PaymentMethod» относятся к телекоммуникационным услугам, которые клиенты подписались на.
  • Переменная «MonthlyCharges» имеет среднее значение 64,76, минимальное значение 18,25 и максимальное значение 118,75.

ГИПОТЕЗЫ:

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

Альтернативная гипотеза: срок пребывания клиента не определяет вероятность оттока.

ВОПРОСЫ:

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

  1. Какова наша скорость взбивания?
  2. Какой тип контракта привлекает больше клиентов?
  3. Какой тип интернет-сервиса привлекает больше клиентов?
  4. Какой самый длинный и самый короткий период у нас был клиент?
  5. Какой пол взбалтывает больше?
  6. Сколько пожилых людей в наборе данных и какова их доля?
  7. Как доля ушедших клиентов различается между пожилыми и не пожилыми людьми?
  8. Какова связь между сроком пребывания и оттоком?
  9. Какая связь между безбумажным выставлением счетов и оттоком?
  10. Какая связь между способом оплаты и оттоком?
  11. Увеличивают ли срок пребывания в должности более низкие ежемесячные платежи?

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

ПРОБЛЕМЫ С ДАННЫМИ

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

  1. Более 600 клиентов имеют срок владения 0 месяцев.
  2. Столбец Total Charges имеет тип объекта.
  3. Столбец «Общие расходы» не содержит пропущенных значений, но на самом деле они есть.

Для решения этих проблем можно предпринять следующие шаги:

  1. Изучите клиентов с нулевым сроком владения и проверьте, есть ли у них какие-либо другие записи в наборе данных. Если это так, срок пребывания в должности в этих записях может помочь определить, является ли 0-месячный срок владения правильным или нет. Если других записей нет, данные могут быть неполными, и может возникнуть необходимость удалить эти записи или заменить отсутствующие значения.
  2. Преобразуйте столбец Total Charges в тип данных с плавающей запятой, используя метод pandas .astype().
  3. Замените отсутствующие значения в столбце Total Charges на 0, используя метод pandas .fillna().

ОТВЕТЫ НА ВОПРОСЫ

1. Каков процент оттока?

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

2. Какой тип контрактов привлекает больше клиентов?

Изучение типов контрактов показало, что ежемесячные контракты имели самый высокий уровень оттока клиентов: 1655 клиентов прекратили свои подписки. Годовые контракты имели более низкий уровень оттока: только 166 клиентов прекратили свои услуги. С другой стороны, у двухлетних контрактов был самый низкий уровень оттока: ушло всего 48 клиентов. Эти результаты показывают, что клиенты с более долгосрочными контрактами с меньшей вероятностью уходят. На приведенном ниже графике Seaborn визуально представлены результаты.

3. Какие интернет-услуги привлекают больше клиентов?

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

4. Каков самый длинный и самый короткий период времени, когда у нас был клиент?

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

5. Какой пол более популярен?

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

6. Сколько пожилых людей в наборе данных и какова их доля?

Анализ показывает, что в наборе данных 1142 пожилых человека, что составляет примерно 16% от всего набора данных. Кроме того, была создана гистограмма, чтобы показать распределение пожилых людей в наборе данных.

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

Из нашего анализа мы заметили, что уровень оттока пожилых людей составляет 41,7%, что заметно выше, чем у не пожилых людей (23,6%). В результате мы можем сделать вывод, что пожилые люди более склонны к оттоку по сравнению с их не пожилыми коллегами.

8. Какая связь между сроком пребывания и оттоком?

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

9. Какая связь между безбумажным выставлением счетов и оттоком?

Чтобы изучить взаимосвязь между оттоком и безбумажным выставлением счетов, мы преобразовали столбец PaperlessBilling в двоичные значения (1 — да, 0 — нет) и построили точечную диаграмму. Однако график не выявил какой-либо четкой связи между двумя переменными. Затем мы вычислили коэффициент корреляции между PaperlessBilling и Churn, который оказался равным 0,1918, что указывает на слабую положительную корреляцию. Несмотря на это, корреляция недостаточно сильна, чтобы делать какие-либо существенные выводы относительно взаимосвязи между двумя переменными. Таким образом, можно сделать вывод, что четкой корреляции между оттоком и безбумажным выставлением счетов нет.

10. Какая связь между способом оплаты и сбросом

Согласно нашему анализу, выбор способа оплаты оказывает значительное влияние на отток клиентов. Чтобы исследовать эту взаимосвязь, мы использовали функцию group by (), чтобы сгруппировать данные по способу оплаты и оттоку, и создали сгруппированную гистограмму, чтобы визуализировать доли ушедших и не ушедших клиентов для каждого способа оплаты. Согласно диаграмме, у клиентов, которые использовали электронные чеки, был самый высокий уровень оттока — 45%, в то время как у тех, кто платил банковскими переводами и кредитными картами, был относительно более низкий уровень оттока — примерно 16%. У клиентов, которые расплачивались отправленными по почте чеками, отток клиентов составил 19%. Это указывает на то, что пользователи электронных чеков чаще уходят по сравнению с клиентами, использующими другие способы оплаты. Поэтому компаниям важно учитывать способ оплаты, используемый их клиентами, при прогнозировании вероятности их оттока. На основе этой информации можно разработать целевые стратегии для удержания пользователей электронных чеков и снижения их оттока.

11. Влияют ли ежемесячные платежи на срок владения?

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

ОДНОМЕРНЫЙ АНАЛИЗ

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

МНОГОВАРИЕНТНЫЙ АНАЛИЗ

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

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

Затем мы используем библиотеку Seaborn для создания тепловой карты, визуализирующей корреляционную матрицу. Тепловая карта обеспечивает быстрый и простой способ визуально определить сильную положительную или отрицательную корреляцию между переменными. Мы устанавливаем параметр annot в True, чтобы отображать коэффициенты корреляции в каждой ячейке тепловой карты, и устанавливаем параметр annot_kws, чтобы увеличить размер шрифта аннотаций.

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

ЗАКЛЮЧЕНИЕ

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

РЕКОМЕНДАЦИИ

  1. Компания должна уделять первоочередное внимание повышению качества и ценообразования своего оптоволоконного интернет-сервиса, поскольку клиенты, использующие эту услугу, имеют более высокий уровень оттока по сравнению с теми, кто использует DSL и не использует интернет-услуги.
  2. Усилия по удержанию клиентов должны быть сосредоточены на пожилых людях, поскольку они более склонны к оттоку по сравнению с обычными людьми.
  3. При прогнозировании оттока клиентов компания должна учитывать множество факторов, таких как демографические данные клиентов, модели использования и уровни удовлетворенности, а не полагаться исключительно на срок пребывания клиентов.
  4. Чтобы удержать пользователей электронных чеков, компании должны разработать целевые стратегии, направленные на снижение их оттока.
  5. Ежемесячные платежи не обязательно влияют на решение клиента уйти. Поэтому компаниям следует сосредоточиться на предоставлении высококачественных услуг и повышении удовлетворенности клиентов, а не просто на снижении цен.
  6. Подумайте о том, чтобы предлагать поощрения или рекламные акции клиентам, которые долгое время работают в компании, поскольку они с большей вероятностью останутся лояльными, если почувствуют, что их ценят.
  7. Проводите опросы об удовлетворенности клиентов, чтобы определить области, в которых можно сделать улучшения для повышения лояльности клиентов и снижения оттока.
  8. Изучите причины, по которым пожилые люди чаще уходят, и рассмотрите возможность реализации стратегий для решения их проблем или потребностей.
  9. Разрабатывайте целевые маркетинговые кампании или предложения для клиентов, которые используют электронные чеки в качестве способа оплаты, поскольку у них самый высокий уровень оттока.
  10. Проанализируйте жалобы и отзывы клиентов, чтобы определить общие проблемы, которые могут способствовать оттоку клиентов, и работайте над их упреждающим устранением.

СОЗДАНИЕ МОДЕЛИ МАШИННОГО ОБУЧЕНИЯ

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

Разработка признаков является важной частью процесса обработки данных. Целью разработки признаков является создание новых признаков из существующего набора данных, которые улучшают прогностическую силу алгоритмов машинного обучения. В этом проекте мы выполнили некоторые распространенные методы обработки признаков, такие как удаление дубликатов и вменение отсутствующих значений, чтобы очистить наш набор данных. Мы не нашли повторяющихся строк в нашем наборе данных, поэтому пропустили этот шаг. Однако мы не нашли пропущенных значений в нашем наборе данных. Затем мы посмотрели на уникальные значения столбца «TotalCharges», которые показались разумными. После этого мы отсортировали набор данных по столбцу «срок пребывания», который представляет собой количество времени, которое клиент провел в компании. Мы видим, что некоторые клиенты работают в компании 0 месяцев. Тем не менее, они не имеют каких-либо общих сборов. Скорее всего, это новые клиенты, которые еще ничего не заплатили. Наконец, мы изучили набор данных, чтобы определить любые шаблоны или отношения, которые могут помочь нам создать новые функции. Мы будем использовать эти идеи для создания новых функций на следующем этапе.

Кодирование функций

Горячее кодирование — это метод, используемый при предварительной обработке данных для представления категориальных данных в виде числовых данных. Он преобразует категориальные признаки в двоичные векторы, где каждое значение признака представлено двоичной цифрой (0 или 1). Цифра устанавливается на 1 для категории, к которой принадлежит образец, и на 0 для всех остальных категорий. Это создает уникальное представление для каждой категории и устраняет любой числовой порядок или взаимосвязь между ними. Горячее кодирование обычно используется в алгоритмах машинного обучения, которые не могут напрямую работать с категориальными данными.

Кодировщик OneHot использует параметр «drop=» first», чтобы исключить начальную категорию каждой закодированной функции в качестве меры предотвращения «ловушки фиктивной переменной». Крайне важно нормализовать числовые признаки, чтобы гарантировать, что их значения находятся в сопоставимом диапазоне, особенно при использовании моделей, основанных на расчетах расстояний или оптимизации градиентного спуска, таких как k-ближайшие соседи (KNN) или нейронные сети.

Масштабирование функций

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

Разделение данных

Я выполнил разделение набора данных, чтобы подготовить наши данные для обучения и оценки. Процесс включал разделение наших данных на три набора: обучающий, eval и тестовый наборы. Мы использовали функцию train_test_split из библиотеки sklearn для выполнения разделения.

Во-первых, я разделил набор данных на обучающие и тестовые наборы с размером теста 0,2 (20%) от общего объема данных. Я назначил функции (независимые переменные) X, а цель (зависимая переменная) — y. Затем я использовал функцию train_test_split для разделения данных, гарантируя, что разделение было стратифицировано, а это означает, что доля каждого класса (в нашем случае, независимо от того, ушел клиент или нет) в поезде и тесте наборы будут одинаковыми. Я установил для параметра random_state значение 42, чтобы обеспечить воспроизводимость результатов.

Затем я разделил набор поездов на наборы поездов и наборы eval с размером eval 0,2 (20%) данных поезда. Я использовал ту же функцию train_test_split и установил для random_state значение 42, чтобы убедиться, что разделение соответствует предыдущему.

Наконец, я распечатал формы полученных массивов, чтобы убедиться, что разбиение прошло успешно. В наборе train 4507 строк, в наборе test — 1409 строк, а в наборе eval — 1127 строк. Массивы X содержат 30 столбцов, соответствующих 30 функциям, которые мы выбрали для анализа. Массивы y содержат только один столбец, представляющий целевую переменную.

МОДЕЛИ

Классификатор Randomforest

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

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

После подбора оценочного набора с теми же функциями, что и обучающий набор, модель использовалась для прогнозирования результатов оценочного набора. Отчет о классификации производительности модели на оценочном наборе показал точность 0,78 с точностью 0,59 для класса 1 и 0,84 для класса 0. Показатель отзыва составил 0,49 для класса 1 и 0,88 для класса 0. Показатель f1 был 0,54 для класса 1 и 0,86 для класса 0.

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

Модель классификатора с градиентным усилением

Модель достигла точности 0,80 на оценочном наборе и точности 0,81 на тестовом наборе. Точность, полнота и оценка F1 для каждого класса (переработанного/непереработанного) указываются в отчете о классификации как для оценочного набора, так и для тестового набора.

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

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

Логистическая регрессия

Для построения модели логистической регрессии мы использовали библиотеку scikit-learn. Первым шагом было обучение модели на тренировочном наборе с использованием метода fit(). Затем мы использовали метод predict(), чтобы предсказать целевую переменную в оценочном и тестовом наборах. Отчет о классификации был сгенерирован с использованием функцииclassification_report(), которая показывает точность, воспроизводимость и показатель f1 для каждого класса (0 и 1). Результаты показали, что модель логистической регрессии имеет точность 0,80 как для оценочных, так и для тестовых наборов.

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

Таким образом, модель логистической регрессии является хорошим вариантом для прогнозирования целевой переменной в этом наборе данных с точностью 0,80 как в оценочном, так и в тестовом наборах. Однако следует отметить, что модель лучше предсказывает класс 0, чем класс 1, и могут быть внесены дальнейшие улучшения, чтобы повысить ее производительность для класса 1.

ОБЗОР

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

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

НАСТРОЙКА ГИПЕРПАРАМЕРОВ

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

В этой статье три модели машинного обучения (RandomForestClassifier, GradientBoostingClassifier и LogisticRegression) были обучены на некоторых данных, а гиперпараметры моделей были настроены с помощью GridSearchCV, функции, предоставляемой библиотекой sci-kit-learn для настройки гиперпараметров.

GridSearchCV использует оценщик (в данном случае RandomForestClassifier), диапазон гиперпараметров для поиска (указанный в словаре «параметров»), используемую метрику оценки (в данном случае использовалось несколько метрик, включая точность, F1- оценка, точность и полнота), стратегия перекрестной проверки (задается cv=10) и другие необязательные параметры.

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

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

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

ЭКСПОРТ КЛЮЧЕВЫХ ПОКАЗАТЕЛЕЙ В КОНЦЕПЦИЮ

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

Это ссылка на мой репозиторий GitHub для просмотра кода, использованного в моем анализе:

https://github.com/Gilbert-B/Predicting-Customer-Churn.git