Основы иерархической кластеризации

Кластерный анализ на Python

Shaumik Daityari

Business Analyst

Создание матрицы расстояний с помощью linkage

scipy.cluster.hierarchy.linkage(observations, 
                                method='single', 
                                metric='euclidean', 
                                optimal_ordering=False
)
  • method: способ вычисления близости кластеров
  • metric: метрика расстояния
  • optimal_ordering: порядок точек данных
Кластерный анализ на Python

Какой метод выбрать?

  • 'single': по двум ближайшим объектам
  • 'complete': по двум наиболее удалённым объектам
  • 'average': по среднему арифметическому всех объектов
  • 'centroid': по среднему геометрическому всех объектов
  • 'median': по медиане всех объектов
  • 'ward': по сумме квадратов
Кластерный анализ на Python

Создание меток кластеров с помощью fcluster

scipy.cluster.hierarchy.fcluster(distance_matrix, 
                                 num_clusters,
                                 criterion
)
  • distance_matrix: результат метода linkage()
  • num_clusters: количество кластеров
  • criterion: правило определения порогов для формирования кластеров
Кластерный анализ на Python

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

Кластерный анализ на Python

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

Кластерный анализ на Python

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

Кластерный анализ на Python

Как выбрать метод: итоги

  • Универсального метода не существует
  • Важно тщательно изучить распределение данных
Кластерный анализ на Python

Давайте потренируемся!

Кластерный анализ на Python

Preparing Video For Download...