Начните свой проект машинного обучения с готовым кодом

Хотите знать, как создать лучшую маркетинговую стратегию для охвата различных групп клиентов? Знаете ли вы, какие группы клиентов с наибольшей вероятностью купят ваш продукт? Группировка ваших клиентов в сегменты на основе профилей, поведения и покупательских моделей — вот ответ.

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

ПРОБЛЕМА

Сегментация клиентов важна, поскольку она дает возможность понять клиентов и их потребности. Это, в свою очередь, позволяет осуществлять целенаправленный маркетинг и предоставлять правильное сообщение, продукт и услугу. Согласно отчету Ernst & Young: «Более детальное понимание потребителей больше не является приятным, а является стратегическим и конкурентным императивом для поставщиков банковских услуг. Понимание клиентов должно быть живой, дышащей частью повседневного бизнеса, а идеи лежат в основе всего спектра банковских операций».

НАБОР ДАННЫХ

Мы будем использовать набор данных German Credit, общедоступный набор данных, предоставленный доктором Гансом Хофманном из Гамбургского университета. Набор данных German Credit содержит характеристики, описывающие 1000 соискателей кредита, которые взяли кредит в банке. Используя этот набор данных, наша цель будет заключаться в том, чтобы понять следующее: Как банк должен персонализировать свои продукты для своих клиентов?.

КАК МЫ БУДЕМ ЭТО РЕШАТЬ?

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

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

ИТАК, НАЧНЕМ

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

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

  • Распределение «Возраст», «Сумма_кредита» и «Длительность» искажены. Поэтому нам необходимо применить преобразования, чтобы уменьшить асимметрию и сделать данные более приближенными к нормальному распределению. Мы используем логарифмическое преобразование для «Возраст», «Сумма_кредита» и «Продолжительность», а на следующем графике показано распределение до и после преобразования.

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

  • Мужчин среди соискателей кредита в два раза больше, чем женщин.

  • Большинство заявителей, около 71%, владеют собственным домом, а 18% арендуют жилье.

  • Большая часть заявителей попросила ссуды на покупку автомобилей, а затем по радио / телевидению.

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

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

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

ТЕПЕРЬ МЫ ГОТОВЫ К КЛАСТЕРИЗАЦИИ

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

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

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

Мы будем использовать готовый код, чтобы помочь нам в этом.

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

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

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

Из-за количества итераций блоки данных также предоставили эффективный код, использующий устойчивый распределенный набор данных (RDD) для распределения работы по кластеру.

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

Наблюдения сверху за графиками рассеяния и силуэта:

  • Для кластеров = 3 все графики имеют сравнимую толщину и, следовательно, одинаковый размер, что можно считать оптимальным количеством кластеров.
  • Для кластеров = 4, хотя все графики имеют более или менее одинаковую ширину, толщина варьируется от одной метки кластера к другой.
  • Толщина графика силуэта для кластера с cluster_label=1 и 4 и когда clusters=5 меньше по размеру.

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

ЧТО ВСЕ ЭТО ЗНАЧИТ? КАК МЫ МОЖЕМ ПОЛУЧИТЬ ИНФОРМАЦИЮ О СЕГМЕНТАХ?

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

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

ВОТ И ВСЕ!

В этой статье продемонстрировано использование Databricks Solutions Accelerator для реализации кластеризации K-средних для сегментации соискателей кредита. Ускорители полностью настраиваются и могут быть адаптированы к другим вариантам использования с минимальными изменениями. Используя алгоритм К-средних, мы разделили соискателей кредита на 3 группы, которые теперь могут использоваться банком для понимания характеристик этих конкретных групп. Это даст возможность для эффективного целевого маркетинга. Еще одна вещь, которую можно попробовать, но не сделанная здесь, — это реализовать иерархическую кластеризацию набора данных для анализа сегментации.

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

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