在scikit-learn中将共现矩阵转换为MDS的不相似度矩阵

3
我有一个词共现矩阵,如下所示。我想使用MDS来降低维度并进行绘图。在sklearn中,有一个函数model = MDS(n_components=2, dissimilarity='precomputed', random_state=1),应用该模型的方法为output = model.fit_transform(input)我的理解是输入应该是一个不相似矩阵,而不是我所拥有的相似矩阵。这是正确的吗?是否有一个函数可以将这个共现不相似矩阵转换?我对此还很陌生。非常感谢您的帮助。
co-occurrence matrix :
        word1       word2      word3 ...
word1.    0           1          3
word2     1           0          5
word3     3           5          1
...
1个回答

0

可能已经有点晚了,但我可能有一个提议的答案。

我使用了一个相似度矩阵(对角线上充满1,这不是你的情况),并找到了一个简单的公式将其转换为不相似度矩阵:(1-单元格) 然而,我的主管发现了另一个公式(我找不到参考文献),它似乎可以处理具有不同值的对角线。我在此帖子中放了一些细节,但我的AWK程序无法应用于您的数据(因为我简化了公式以处理我只有对角线上有1的情况)。

适用于您的公式是:

(sii + si'i' - 2 * sii')^1/2

在我的情况下,对于对角线为1的情况,我将其简化为:

(2 - 2 * sii')^1/2

希望这可以帮到你! :) 但是也许我错了。如果是这样的话,我很有兴趣知道详情。


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