基于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 (将#修改为@)