Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何计算Sklearn中点到质心的平均距离?_Python_Scikit Learn_Cluster Analysis_K Means_Unsupervised Learning - Fatal编程技术网

Python 如何计算Sklearn中点到质心的平均距离?

Python 如何计算Sklearn中点到质心的平均距离?,python,scikit-learn,cluster-analysis,k-means,unsupervised-learning,Python,Scikit Learn,Cluster Analysis,K Means,Unsupervised Learning,我被要求计算每个点到其质心的平均距离。已经提供了数据集和集群数量,这似乎是一个非常直接的问题(考虑到k-means集群的作用),但我似乎找不到可行的解决方案 数据集是一个3列、500行、带浮点数的excel工作表 根据我所读到的,最简单的方法是将点到每个质心的距离放在一个numpy数组中,然后计算平均值。这就是我在下面所做的 从sklearn.cluster导入KMeans 作为pd进口熊猫 将matplotlib.pyplot作为plt导入 '执行(%matplotlib内联)' 将numpy

我被要求计算每个点到其质心的平均距离。已经提供了数据集和集群数量,这似乎是一个非常直接的问题(考虑到k-means集群的作用),但我似乎找不到可行的解决方案

数据集是一个3列、500行、带浮点数的excel工作表

根据我所读到的,最简单的方法是将点到每个质心的距离放在一个numpy数组中,然后计算平均值。这就是我在下面所做的

从sklearn.cluster导入KMeans
作为pd进口熊猫
将matplotlib.pyplot作为plt导入
'执行(%matplotlib内联)'
将numpy作为np导入
df=pd.read\u excel('k-means\u test.xlsx',sheet\u name='data\u set')
X=np.数组(df)
plt.scatter(X[:,0],X[:,1],标签='真实位置')
kmeans=kmeans(n_集群=5)
kmeans.fit(X)
##打印(kmeans.群集\中心)
plt.scatter(X[:,0],X[:,1],c=kmeans.labels,cmap='rainbow')
##plt.show()
距离=kmeans.fit_变换(X)
方差=0
i=0
对于kmeans.labels中的标签:
方差=方差+距离[i][标签]
i=i+1
平均距离=np.平均(距离)
打印(平均距离)
我期望值在1.41到2.85之间,但我得到了11.3。很遥远

任何帮助都将不胜感激。一般来说,我对python和机器学习算法相当陌生。

K-means使用平方欧几里德距离

人们常常错误地认为这意味着最小化欧几里德距离——事实并非如此


无论如何,试着插入
distance=numpy.sqrt(distance)
,之后你的平均值可能会低于3。

看一看:谢谢@MaximilianPeters,我试图将一些代码合并到上面的示例中,但事情失控了(初学者和我都认为示例中的一些代码很复杂)-所以我采取了卑鄙的方法。我会再看一看,看看我是否能从中得到一些东西。嗨@Anony mouse,谢谢你的评论——从概念上说,这是非常有用的。不幸的是这导致了3.37-所以我一定是真的搞砸了。也许尝试使用欧几里德距离有问题?嗯,你在计算到所有三个中心的平均距离…嗯。。。我不确定这将如何影响到我的答案仍然需要在1.41和2.85之间,所有点到各自中心的平均距离。有5个集群,而不是3个。您是否建议上面的代码计算所有点到所有5个中心的平均距离?是的。到每个点的所有中心。检查距离的形状。