Группировка похожих районов Барселоны с использованием агломеративной иерархической кластеризации

Иерархическая кластеризация — это метод обучения без учителя, при котором создаются вложенные кластеры путем их последовательного слияния или разделения. Этот метод создает полную иерархию кластеров, что позволяет нам легко определить количество кластеров и сходство между точками данных. В этой статье мы применим агломеративную иерархическую кластеризацию для классификации районов Барселоны в соответствии с их социальным классом. Для этого мы используем три атрибута: (1)доход, (2)уровень безработицы и (3) уровень образования. . После кластеризации районов мы сможем определить 5 социальных классов. С точки зрения бизнеса классификация районов в соответствии с их социальным классом действительно полезна, поскольку позволяет адаптировать бизнес-стратегию к предпочтениям и привычкам клиентов.

Наборы данных

Наборы данных, использованные в этой статье, доступны в Open Data Barcelona.

Безработица

Этот набор данных содержит уровень безработицы среди населения Барселоны в возрасте от 16 до 64 лет по месяцам и районам.



Доход

Этот набор данных содержит средний доход на семью в Барселоне.



Образование

Набор данных содержит количество жителей Барселоны по полу и академическому уровню.



Аннотация. Информация во всех наборах данных относится к 2018 году.

Гитхаб

Код этого проекта доступен в виде Jupyter Notebook на GitHub.



Этапы проекта

Проект состоит из следующих разделов:

  1. Исследовательский анализ данных и очистка данных
  2. Теоретическое введение: иерархическая кластеризация
  3. Иерархическая кластеризация с помощью Scipy
  4. Визуализация иерархии с помощью дендрограммы
  5. Визуализация кластеров на картограмме
  6. Среднее значение каждого социально-экономического показателя по кластеру
  7. Почему определение социальных классов так важно с точки зрения бизнеса?
  8. Резюме проекта

1. Исследовательский анализ данных и очистка данных

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

2. Теоретическое введение: иерархическая кластеризация

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

Агломеративная и разделительная иерархическая кластеризация

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

  • Агломеративная иерархическая кластеризация (снизу вверх):процедура начинается с n кластеров размера 1 (каждое наблюдение имеет свой собственный кластер) и заканчивается 1 кластером размера n (один кластер, содержащий все наблюдения). .
  • Разделительная иерархическая кластеризация (сверху вниз): все наблюдения изначально являются частью одного кластера. Этот начальный кластер рекурсивно разбивается на все меньшие и меньшие кластеры, пока каждое наблюдение не сформирует отдельный кластер.

В этой статье мы используем подход «снизу вверх» (агломеративную иерархическую кластеризацию) для группировки похожих районов в кластеры по социально-экономическим показателям.

Иерархическая кластеризация: метод связывания

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

Есть много методов связи, из которых можно выбрать. Наиболее часто используемые методы: (1) одиночная, (2) полная, (3) средняя и (4) центроидная связь.

  • Одиночная связь: в этом методе используется минимальное расстояние между двумя кластерами для определения связи.
  • Полное связывание: этот метод учитывает максимальное из всех попарных расстояний между элементами двух кластеров.
  • Средняя связь: расстояние между двумя кластерами определяется как среднее расстояние всех попарных расстояний между наблюдениями двух кластеров.
  • Центроидная связь: расстояние между двумя кластерами равно расстоянию между их центроидами.

3. Иерархическая кластеризация с помощью Scipy

Мы используем функцию linkage для выполнения иерархической кластеризации строк массива NumPy X_standard, используя 4 метода связывания: (1) одиночный, (2) полный, (3 ) среднее и (4) центроид. Эта функция возвращает матрицу (n-1) на 4. Первые два столбца содержат кластеры, которые объединяются в новый кластер. Третий столбец представляет собой расстояние между кластерами столбцов 1 и 2. Четвертый столбец содержит количество наблюдений во вновь созданном кластере. Как и ожидалось, последний сформированный кластер содержит всего 73 наблюдения (количество районов в нашем наборе данных).

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

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

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

4. Визуализация иерархии с помощью дендрограммы

Иерархическая кластеризация создает древовидную структуру, называемую дендрограммой. Горизонтальное положение (обычно вертикальное) узлов соответствует порядку объединения кластеров.

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

5. Визуализация кластеров на картограмме

После определения матрицы связей и визуализации результатов мы используем функцию cut_tree для формирования 5 непересекающихся кластеров (n_clusters=5).

Полученные результаты сохраняются в DataFrame с именем clusters_districs, где столбецclusters представляет кластеры, а столбецNOM представляет различные районы города. Как показано выше, мы переименовали район el Poble Sec, чтобы он соответствовал имени, используемому в файле JSON.

Для построения карты мы использовали библиотеку Geopandas. В основном есть два элемента для построения картограммы:

  • Файл JSON, содержащий границы (многоугольники) каждого района Барселоны. Файл JSON, используемый в этой статье, можно найти в следующем репозитории GitHub:

https://raw.githubusercontent.com/martgnz/bcn-geodata/master/barris/barris.json

  • Фрейм данных, содержащий значение, которое мы хотим представить (в данном случае кластер).

Мы читаем файл JSON как GeoDataFrame, используя функцию geopandas.read_file. После выбора интересующих столбцов (NOM и geometry) мы добавляем метки кластера в GeoDataFrame. Наконец, мы визуализируем результаты, используя метод plot.

На следующей картограмме показано расположение каждого кластера (всего 5). Кластеры представляют социальные классы в Барселоне, которые рассчитываются в соответствии со следующими социально-экономическими показателями: (1) уровень безработицы, (2) доход на семью и (3) уровень граждан. с учебой в университете.

6. Среднее значение каждого социально-экономического показателя по кластеру

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

Районы высокого класса (кластер 3 — фиолетовый)

Роскошные районы в Барселоне: (1) Педральбес, (2) Сант-Жерваси — Гальвани, (3) Сант-Жерваси — ла Бонанова, (4) Саррия и (5) Ле-Трес-Торрес. . Эти районы расположены во внутренней части города. Они демонстрируют действительно низкий уровень безработицы (3,35%), высокий уровень образования (51,52) и высокий доход на семью (74793).

Эти значения намного выше среднего для Испании и Каталонии и даже выше, чем средний доход в таких странах, как Норвегия, Швеция или Дания (см. https://en.wikipedia.org/wiki/Median_income).

Районы с высоким уровнем среднего класса (кластер 4 — желтый)

Районы с высоким уровнем среднего класса расположены во внутренней части города и в центре города. К этому кластеру относятся 5 районов: (1) Вальвидрера, Эль-Тибидабо-и-ле-Планес, (2) Эль-Путксет-и-эль-Фарро, (3) Антига-Эскерра-де-л'Эшампле, (4) Ла-Дрета-де-л' Эшампле, (5) Ла-Вила-Олимпика-дель-Побленоу.

Эти районы демонстрируют высокий уровень образования (все они более 40%), низкий уровень безработицы и относительно высокие доходы.

Районы среднего класса (кластер 1 — лосось)

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

Как показано ниже, доход этих районов колеблется от 25 485 до 50 563. Уровень безработицы составляет менее 9%, а уровень образования во всех районах кластера превышает 17%.

Низкий средний класс (кластер 0 — синий)

Районы с низким уровнем среднего класса расположены в северной и южной частях города. Уровень образования составляет менее 20%, а уровень безработицы действительно высок (в среднем 8,67%).

Районы низкого класса (кластер 2 — зеленый)

Районы низкого класса расположены недалеко от порта и на внутренней северной стороне города.

Нынешний действительно высокий уровень безработицы (более 12%), низкий уровень образования и низкие доходы, как показано в таблице ниже.

Почему выявление социальных классов так важно с точки зрения бизнеса?

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

8. Резюме проекта

В этом проекте мы использовали неконтролируемое обучение для создания иерархической кластеризации районов Барселоны в соответствии с тремя экономическими аспектами: (1) доход на семью, (2) уровень безработицы и (3) уровень университетов. Мы смогли выделить 5 социальных уровней, которые были визуализированы с помощью картограммы. Такое разделение кварталов по социальным аспектам может быть полезно с точки зрения бизнеса, чтобы приспособиться к потребностям и стремлениям клиентов.

Спасибо за прочтение 💜

Аманда Иглесиас