微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

基于Haversine距离的聚类的剪影得分

如何解决基于Haversine距离的聚类的剪影得分

正如标题所述,我正在尝试使用 scikit-learn 库中的 sklearn.metrics.silhouette_score 方法计算聚类结果的轮廓得分

这是我现在正在使用的代码段:

nodes = [[node[1],node[2]] for node in nodes] # Matrix with each (lat,lon) coord
nodes = np.array(nodes)
labels = get_labels(nodes)

print("Nodes: ",nodes)
print("Nodes shape: ",nodes.shape)

silhouette = silhouette_score(nodes,labels,metric = sklearn.metrics.pairwise.haversine_distances)
print("Silhouette score: ",silhouette)

但是执行时出现以下错误

  File "sklearn/neighbors/_dist_metrics.pyx",line 388,in sklearn.neighbors._dist_metrics.distanceMetric.pairwise
ValueError: Buffer has wrong number of dimensions (expected 2,got 1)

我不知道这是否是正确的格式,但是我在这个问题(Silhouette score for Jaccard distance)中看到,他们建议直接在点之间使用distanceMatrix并使用metrics="precomputed"作为轮廓得分的参数。

所以我的问题是:

  1. 从我的代码中,我需要添加/修改什么才能使其正常工作?
  2. 使用已经计算出的distanceMatrix并忘记我的方法吗?

谢谢!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。