如何使用KMEANS计算每个记录到聚类中心的距离?

我在包含两个聚类的数据集上应用了Kmeans算法。我的数据集形状为(506,13)。如何获取每个记录到聚类中心的距离?

我尝试使用欧几里得距离计算聚类中心之间的距离,但我希望知道每个记录到两个聚类的距离。

model= KMeans(n_clusters=2)model.fit(X)print(model.cluster_centers_)[3.88774444e-01 1.55826558e+01 8.42089431e+00 7.31707317e-025.11847425e-01 6.38800542e+00 6.06322493e+01 4.44127154e+004.45528455e+00 3.11926829e+02 1.78092141e+01 3.81042575e+021.04174526e+01][1.22261690e+01 3.01980663e-14 1.84518248e+01 5.83941606e-026.70102190e-01 6.00621168e+00 8.99678832e+01 2.05447007e+002.32700730e+01 6.67642336e+02 2.01963504e+01 2.91039051e+021.86745255e+01]**实际结果:**from sklearn.metrics.pairwise import euclidean_distancesdists = euclidean_distances(model.cluster_centers_)array([[  0.        , 369.34000546],[369.34000546,   0.        ]])**期望结果:**rows cluster_1_distance  cluster_2_distance 0        0.78                 0.89 1        0.53                 0.66

回答:

使用scipy.spatial.distance库中的cdist函数。

如参考资料中所述,它接受两个矩阵,并返回两个矩阵中每对之间的距离。您可以使用metric参数指定您想要的距离函数类型。

在您的案例中,

from scipy.spatial.distance import cdistdists = cdist(X,model.cluster_centers_,metric='euclidean') #dists的形状 : (506,2) 

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注