r语言 - Python cosine_similarity不适用于带有 NaN 的矩阵



需要找到像这样工作的python函数 R func:

proxy::simil(method = "cosine", by_rows = FALSE) 

即通过成对计算数据帧行之间的余弦距离来查找相似性矩阵。如果存在 NaN,则应删除这 2 行中含有 NaN 的确切列

模拟函数说明 (R)

由于 NaN 导致的 Python 错误

上。我还尝试使用来自scipy.spatial.distance的余弦函数删除循环中每对行中的NaN。它给出的结果与 R 中相同,但工作年龄:(

你可以试试这种方法: https://github.com/Midnighter/nadist,或者,您可以将_chk_weightsnan_screen=True一起使用,如此处所述 metaperture 此处描述 此处 https://github.com/scipy/scipy/issues/3870,希望对您有所帮助。

我发现Midnighter之前在stackoverflow上发布了同样的问题:计算带有缺失值的scipy中的成对距离。那里还有其他一些解决方案,但是,当他继续将其分类时,我敢打赌它们不是最好的。

您可以将NaN0交换,然后尝试计算余弦相似性。

我通过创建一个掩码(指示缺少哪些值的布尔数组)并计算矩阵行向量之间的成对余弦距离来解决这个问题。结果,我收到了一长长的相似向量,然后我对其进行了旋转以获得相似性矩阵

相关内容

  • 没有找到相关文章

最新更新