Проблема с NearestCentroid, python, кластером - PullRequest
1 голос
/ 14 июня 2019

Я хочу найти координаты центроида кластера (список точек [x, y]).Итак, я хочу использовать NearestCentroid () из sklearn.

clf = NearestCentroid()
clf.fit(X, y)

X: np.array моих координатных точек.

y: np.array полностью заполнен 1

У меня ошибка при запуске функции fit ().

ValueError: y has less than 2 classes

Возможно, есть проблема с формой массивов.(Х = (7,2), у = (7,))

1 Ответ

1 голос
/ 14 июня 2019

Центроид точек может быть рассчитан путем суммирования всех значений в каждом измерении и их усреднения.Вы можете использовать numpy.mean() для этого.См. Документацию: numpy.mean

import numpy as np

points = [
    [0, 0],
    [1, 1],
    [0, 1],
    [0, 100]
]
a = np.array(points)
centroid = np.mean(a, axis=0)
print(centroid)

Что даст:

[ 0.25 25.5 ]

Вы можете проверить это вручную.Суммируйте значения по оси X: 0+1+0+0 = 1 и усредните его: 1/4.То же самое для оси Y: 0+1+1+100 = 102, среднее значение: 102/4 = 25.5.

...