Этот проект является частью программы Udacity Data Science Nano Degree. Код для этого проекта можно найти наGitHub. Данные были предоставлены Bertelsmann Arvato Analytics и не могут быть обнародованы.

Обзор проекта и постановка задачи

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

В этом проекте я использовал реальные данные, связанные с компаньонами Bertelsmann AZ Direct и Arvato Finance Solution. Приведенные здесь данные беспокоят корпорацию, занимающуюся продажами по почте в Германии. Их основной интересующий вопрос состоит в том, чтобы определить те аспекты населения, которые с наибольшей вероятностью могут стать покупателями их товаров для кампании по рассылке. исключительные описывают основную потребительскую базу организации.

Исследование данных

Данные для этого проекта состоят из двух файлов:

- Udacity_AZDIAS_Subset.csv: демографические данные для населения Германии в целом; 891211 лиц x 85 признаков

- Udacity_CUSTOMERS_Subset.csv: демографические данные для клиентов компании, занимающейся доставкой по почте; 191652 лица x 85 признаков

Некоторые особенности набора данных включают в себя:

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

И многое другое……

Этап предварительной обработки

Для предварительной обработки данных были выполнены следующие шаги:

  • Преобразуйте коды отсутствующих значений в NaN, закодировав их как NaN.
  • Удаление всех столбцов, которые являются выбросами с точки зрения доли отсутствующих значений.
  • Удаление строк с пропущенными значениями более 10.
  • Если категориальная переменная имеет более 10 уровней, отбросьте ее для простоты.
  • Я закодировал категориальную переменную, создав фиктивные переменные.
  • Создайте функцию очистки, которая выполняет все вышеперечисленные действия (перекодирование и обработка демографических данных), чтобы ее можно было запускать и с набором данных клиентов.
  • Затем я решил использовать imputer, чтобы заполнить все недостающие данные средними значениями, потому что это очень быстрый метод.
  • Я использовал стандартный метод масштабирования для масштабирования, которое стандартизирует данные, и это полезный метод для данных, содержащих отрицательные значения.

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

Я применил класс scikit-learn PCA, чтобы применить анализ основных компонентов к данным.

Не существует четкого способа выбрать количество компонентов, которые нужно сохранить при работе PCA. Выбрав количество компонентов до 35, я решил использовать 28 компонентов для использования в PCA. Что дает почти 86% дисперсии. Проверено отношение дисперсии, определяемой каждым основным элементом, и кумулятивной дисперсии с использованием метода scree_plot.

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

После применения подхода k-средних с 14 кластерами в наборе данных «Кластеры клиентов» и «Кластеры общего населения» я рассчитал пропорции каждого кластера, как показано ниже.

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

Подводить итоги

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

Некоторые области улучшения могут включать:

1) Я решил вменить недостающие значения с использованием медианы столбцов, что легко и быстро, но не учитывает корреляции между функциями. Он работает только на уровне столбца. Возможно, я захочу исследовать пару импутаций. Было высказано предположение, что Множественные импутации (МИ) намного лучше, чем одиночное импутирование, поскольку оно лучше измеряет неопределенность пропущенных значений.

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

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