Основи ієрархічного кластерування

Кластерний аналіз у 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...