【发布时间】:2019-01-11 10:50:53
【问题描述】:
我正在尝试将字典转换为距离矩阵,然后我可以将其用作层次聚类的输入:我有作为输入:
- 键:长度为 2 的元组与我有距离的对象
-
value:实际距离值
for k,v in obj_distances.items(): print(k,v)
结果是:
('obj1', 'obj2') 2.0
('obj3', 'obj4') 1.58
('obj1','obj3') 1.95
('obj2', 'obj3') 1.80
我的问题是如何将其转换为距离矩阵,以便以后在 scipy 中进行聚类?
【问题讨论】:
-
您可以先创建一个零矩阵,然后使用
int(a[-1])作为矩阵的索引,其中a是'obj1'、'obj2'等,并将距离值存储在该数组中 -
您的距离设置是否完整?也就是说,距离字典是否包含每个可能对的距离?例如,您显示的数据不包括
('obj1', 'obj4')或('obj2', 'obj4')的距离。您将需要这些值来进行聚类。 -
嗨@WarrenWeckesser,是的,我只是为了节省空间而省略了它,但是是的,我有所有成对距离,谢谢
标签: python scipy scikit-learn hierarchical-clustering