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
.
我想找到一个簇的质心坐标(点列表 [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
.