聚类之间的距离 kmeans sklearn python
Distance between clusters kmeans sklearn python
我正在使用 sklearn 的 k-means 聚类来聚类我的数据。现在我想知道我的集群之间的距离,但找不到。我可以计算每个质心之间的距离,但想知道是否有获取它的函数以及是否有办法获取每个集群之间的 minimum/maximum/average 链接距离。我的代码很简单:
km = KMeans(n_clusters = 5, random_state = 1)
km.fit(X_tfidf )
clusterkm = km.cluster_centers_
clusters = km.labels_.tolist()
谢谢!
不幸的是,您将不得不自己计算聚类中心上的那些距离。 Scikit 没有提供开箱即用的方法。这是一个类似的问题设置:
from sklearn.datasets import load_iris
from sklearn.cluster import KMeans
from sklearn.metrics.pairwise import euclidean_distances
X, y = load_iris(return_X_y=True)
km = KMeans(n_clusters = 5, random_state = 1).fit(X)
以及如何计算距离:
dists = euclidean_distances(km.cluster_centers_)
然后要获得您感兴趣的统计数据,您只需计算距离矩阵的上(或下)三角角:
import numpy as np
tri_dists = dists[np.triu_indices(5, 1)]
max_dist, avg_dist, min_dist = tri_dists.max(), tri_dists.mean(), tri_dists.min()
km.inertia_ 是 sklearn 的度量,KMeans 是距离平方和。
来自 sklearn 网站:
惯性_:浮动
样本到其最近的聚类中心的平方距离之和,如果提供,则由样本权重加权。
https://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html
我正在使用 sklearn 的 k-means 聚类来聚类我的数据。现在我想知道我的集群之间的距离,但找不到。我可以计算每个质心之间的距离,但想知道是否有获取它的函数以及是否有办法获取每个集群之间的 minimum/maximum/average 链接距离。我的代码很简单:
km = KMeans(n_clusters = 5, random_state = 1)
km.fit(X_tfidf )
clusterkm = km.cluster_centers_
clusters = km.labels_.tolist()
谢谢!
不幸的是,您将不得不自己计算聚类中心上的那些距离。 Scikit 没有提供开箱即用的方法。这是一个类似的问题设置:
from sklearn.datasets import load_iris
from sklearn.cluster import KMeans
from sklearn.metrics.pairwise import euclidean_distances
X, y = load_iris(return_X_y=True)
km = KMeans(n_clusters = 5, random_state = 1).fit(X)
以及如何计算距离:
dists = euclidean_distances(km.cluster_centers_)
然后要获得您感兴趣的统计数据,您只需计算距离矩阵的上(或下)三角角:
import numpy as np
tri_dists = dists[np.triu_indices(5, 1)]
max_dist, avg_dist, min_dist = tri_dists.max(), tri_dists.mean(), tri_dists.min()
km.inertia_ 是 sklearn 的度量,KMeans 是距离平方和。
来自 sklearn 网站: 惯性_:浮动 样本到其最近的聚类中心的平方距离之和,如果提供,则由样本权重加权。 https://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html