需要找到像这样工作的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_weights
与nan_screen=True
一起使用,如此处所述 metaperture 此处描述 此处 https://github.com/scipy/scipy/issues/3870,希望对您有所帮助。
我发现Midnighter之前在stackoverflow上发布了同样的问题:计算带有缺失值的scipy中的成对距离。那里还有其他一些解决方案,但是,当他继续将其分类时,我敢打赌它们不是最好的。
您可以将NaN
与0
交换,然后尝试计算余弦相似性。
我通过创建一个掩码(指示缺少哪些值的布尔数组)并计算矩阵行向量之间的成对余弦距离来解决这个问题。结果,我收到了一长长的相似向量,然后我对其进行了旋转以获得相似性矩阵