如何基于共现矩阵计算相似度?

5
我有一个物品-物品矩阵(1877 x 1877)。矩阵中的值表示两个物品一起出现的次数。如何确定两个物品之间的相似性? 经过阅读,我发现了几个选项。但是我不确定这些方法是否正确。任何有关开始的建议都会很受欢迎。
1.使用余弦计算两个向量之间的相似度 2.将此转换为图形,并使用类似simrank的度量来计算相似性-可以使用出现次数作为两个节点之间的权重。
3个回答

3

1
你可以将其视为每个具有1877个特征的1877个项目。如果两个项目相似,则它们的共现将是相似的。鉴于这一点,您可能会使用 NearestNeighbors 来查找最接近的一个。有许多可用的度量标准。
此外,重新处理数据可能会对您有所帮助。我不知道它的分布情况,但您可能想将值归一化到区间[0;1]或执行类似的操作。

如果我理解正确的话,我使用余弦来计算矩阵中列之间的相似度?列被视为特征。关于归一化,您是指将每列重新缩放为长度为1吗?从sklearn.preprocessing导入*; normalized_X = normalize(X, axis=0, norm='l1') - kitchenprinzessin

1
如果您的共现矩阵对称的,则无需对其进行归一化。您可以参考这篇论文了解有关对称非对称共现矩阵的归一化更多信息: Leydesdorff, L. and Vaughan, L., 2006. Co‐occurrence matrices and their applications in information science: Extending ACA to the Web environment. Journal of the American Society for Information Science and technology, 57(12), pp.1616-1628. 请点击此处

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接