gpt4 book ai didi

python - 如何在python中分别计算每个簇的Silhouette Score

转载 作者:行者123 更新时间:2023-11-30 21:52:20 30 4
gpt4 key购买 nike

您可以使用 1 行代码轻松提取轮廓分数,该代码对所有集群的分数进行平均,但是如何从轮廓分数的 scikit learn 实现中提取每个中间分数?我希望能够为每个集群单独提取相同的分数,而不仅仅是获得总分。

metrics.silhouette_score(x, y, metric='euclidean')

最佳答案

如果您的数据如下所示:

num_clusters = 3
X, y = datasets.load_iris(return_X_y=True)
kmeans_model = KMeans(n_clusters=num_clusters, random_state=1).fit(X)
cluster_labels = kmeans_model.labels_

您可以使用metrics.silhouette_samples计算每个样本的轮廓系数,然后取每个簇的平均值:

sample_silhouette_values = metrics.silhouette_samples(X, cluster_labels)

means_lst = []
for label in range(num_clusters):
means_lst.append(sample_silhouette_values[cluster_labels == label].mean())
<小时/>
print(means_lst)                                                                             
[0.4173199215409322, 0.7981404884286224, 0.45110506043401194] # 1 mean for each of the 3 clusters

关于python - 如何在python中分别计算每个簇的Silhouette Score,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59919627/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com