склеарн спектральная кластеризация приводит к меньшему количеству кластеров, чем установлено - PullRequest
1 голос
/ 03 ноября 2019
from sklearn.cluster import SpectralClustering
import numpy as np
test = np.array([[63.15907836],
       [69.67386298],
       [67.20030411],
       [66.25165771],
       [62.21031327],
       [55.09531565],
       [65.85034014],
       [52.99841912],
       [52.04523986],
       [52.09008007],
       [94.65364516]])
clustering = SpectralClustering(n_clusters = 4).fit(test)
clustering.labels_

Верхний код приводит к array([3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1], dtype=int32), что меня удивило. Спектральная кластеризация требует установить несколько кластеров, что я и сделал, но получу только два кластера. Чего мне не хватает?

1 Ответ

1 голос
/ 03 ноября 2019

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

Например, установка random_state в 17 приводит к 4 кластерам:

clustering = SpectralClustering(n_clusters = 4, random_state=17).fit(test)

Вы можете найти иллюстрацию для k-средних (спектральная кластеризация основана на k-средних): http://user.ceng.metu.edu.tr/~tcan/ceng465_f1314/Schedule/KMeansEmpty.html

...