构造相似矩阵的最有效方法

构造相似矩阵的最有效方法,第1张

构造相似矩阵的最有效方法

scipy.spatial.distance
您可以在其中使用两个有用的功能:
pdist
squareform
。使用
pdist
将为您提供观测值之间的成对距离(作为一维数组),
squareform
并将其转换为距离矩阵。

一个陷阱是

pdist
默认情况下使用距离度量,而不使用相似性,因此您需要手动指定相似性函数。从代码中的注释输出来看,您的Dataframe也不符合
pdist
预期的方向,因此我撤消了您在代码中所做的转置。

import pandas as pdfrom scipy.spatial.distance import euclidean, pdist, squareformdef similarity_func(u, v):    return 1/(1+euclidean(u,v))DF_var = pd.Dataframe.from_dict({"s1":[1.2,3.4,10.2],"s2":[1.4,3.1,10.7],"s3":[2.1,3.7,11.3],"s4":[1.5,3.2,10.9]})DF_var.index = ["g1","g2","g3"]dists = pdist(DF_var, similarity_func)DF_euclid = pd.Dataframe(squareform(dists), columns=DF_var.index, index=DF_var.index)


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5664474.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存