Scipy.cluster kmeans2 - PullRequest
       12

Scipy.cluster kmeans2

0 голосов
/ 26 сентября 2018

Я пытаюсь применить алгоритм kmeans2 в Scipy .Следующий код применяет алгоритм правильно.

from scipy.cluster.vq import kmeans2,vq
import numpy as np

df = pd.read_csv("123.csv")

km,_ = kmeans2(X,2)
idx,_ = vq(X,km)

Как бы я наблюдал за кластерными центрами?Я пробовал печатать (центры), печатать (центроиды) и т. Д., Но ничего не работает.

Как бы я увидел метки кластера?Например, в sklearn KMeans это задается как tags_ .

Я пробовал печатать (этикетки) и все его варианты, которые я нашел в Справочном руководстве Scipy, но, похоже, ни одна из них не работает.

Кроме того, в методах инициализации говорится, что матрица является доступным методом в minit.Я не могу заставить minit распознать любые матрицы, которые я вставил. Обычно я получаю либо сообщение об ошибке, говорящее «тип данных не понят», либо «нечитаемый тип:« список ».

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

Я просто не понимаю, как работает "minit", или я просто неввод моей матрицы в правильной форме

1 Ответ

0 голосов
/ 26 сентября 2018

км должны содержать центры кластеров.Попробуйте

print (km)

Что касается меток, это должна быть вторая переменная, возвращаемая kmeans2.

Вот рабочий пример:

df = [[1.,2.,3.], [7.,8.,9.], [2.,2.,2.], [7.,8.,6.]]

centers,labels = kmeans2(df,2) 
print(centers) 
print(labels)

Результат:

[[1.5 2.  2.5]
 [7.  8.  7.5]]
[0 1 0 1]
...