python - 将 scikit-learn 中 MDS 的共现矩阵转换为相异矩阵
问题描述
我有一个单词共现矩阵,如下所示。我想使用 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,这不是你的情况),并找到了一个简单的公式将其转换为相异矩阵:(1 - 单元格)但是,我的主管找到了另一个公式(我不能找到参考),它似乎管理具有不同值的对角线。我在这个线程中添加了一些细节,但是我的 AWK 程序不能应用于您的数据(因为我简化了公式来管理我的情况,我的对角线中只有 1 个)。
可以为您工作的公式是:
就我而言,对角线为 1,我将其简化为:
我希望它可以帮助你!:) 但也许我错了。如果是这样的话,我很想知道细节。
推荐阅读
- makefile - 如何简化make文件中的依赖项列表
- azure - 第一次调用 Microsoft.Azure.ServiceBus.Core.MessageSender.SendAsync 超时,后续调用不会
- scala - 值解码不是 org.http4s.AuthedRequest 的成员
- google-places-api - 适用于 iOS 的 Places API 未启用错误
- html - 带有缩写的 Emmet 换行
- azure-logic-apps - 我可以从单个主逻辑应用运行多个逻辑应用吗
- git - git 没有找到包含裸存储库的重新安装的 USB 驱动器
- python - 切片操作a[:]是个什么样的拷贝?
- modelica - 目前是否可以在 OpenModelica 中的 ThermoPower 库中创建/建模系统?
- elasticsearch - 找出弹性搜索中的索引错误?