NearestCentroid 问题,python,群集

Problem with NearestCentroid, python, cluster

我想找到一个簇的质心坐标(点列表 [x,y])。 所以,我想使用 sklearn 中的 NearestCentroid()。

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

X : np.array 我的坐标点。

y : np.array 满了 1

启动 fit() 函数时出现错误。

ValueError: y has less than 2 classes

可能数组形状有问题。 (X= (7,2) ,y= (7,))

点的质心可以通过将每个维度中的所有值相加并取平均值来计算。您可以为此使用 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-axis 个值相加:0+1+0+0 = 1 并取其平均值:1/4。 y-axis 相同:0+1+1+100 = 102,取平均值:102/4 = 25.5.