首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用for循环迭代以获得silhouette_score

使用for循环迭代以获得silhouette_score
EN

Stack Overflow用户
提问于 2019-09-11 13:26:48
回答 1查看 352关注 0票数 0

给定小数据框架:

代码语言:javascript
复制
preference_values = 

Column_name
-20.0
-19.7
...
-19.4
 19.1

我想用上面所有的数据值来计算silhouette_score

代码语言:javascript
复制
from sklearn.cluster import AffinityPropagation

af = AffinityPropagation(preference=-20.0, affinity='precomputed').fit(X) # where X is the similarity matrix 
cluster_centers_indices = af.cluster_centers_indices_
labels = af.labels_
n_clusters = len(np.unique(labels))
n_cluster_list.append(n_clusters)

from sklearn.metrics import silhouette_samples, silhouette_score

silhouette_score(frechet, labels, metric="precomputed") # frechet is a Frechet distance matrix calculated before

怎么在循环中完成呢?我需要避免将"preference_values“的每个值都放在1乘1。

已更新

我要:

代码语言:javascript
复制
af = AffinityPropagation(preference=-20.0, affinity='precomputed').fit(X)
af = AffinityPropagation(preference=-19.7, affinity='precomputed').fit(X)
...
af = AffinityPropagation(preference=-19.4, affinity='precomputed').fit(X)
af = AffinityPropagation(preference=-19.1, affinity='precomputed').fit(X)

并将所有结果存储在一个新的数据格式中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-11 14:06:41

您首先需要为不同的首选项值获取标签。从那里你可以打印这些值。

代码语言:javascript
复制
from sklearn.cluster import AffinityPropagation

for k in preference_values:
    af = AffinityPropagation(preference=k).fit(X)
    labels = af.labels_
    score = silhouette_score(X, labels, metric="precomputed")
    print("Preference: {0}, Silhouette score: {1}".format(k,score))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57890300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档