我想将我使用 scikit-learn 的 TfidfVectorizer 的文本文档的相似性可视化为tfidf = TfidfVectorizer(decode_error='ignore', max_df=3).fit_transform(data)
然后执行余弦相似度计算为cosine_similarity = (tfidf*tfidf.T).toarray()
这给出了相似性,但sklearn.manifold.MDS
需要一个相异矩阵。当我给出 1-cosine_similarity 时,应该为零的对角线值不为零。它们是一些小的价值,例如1.12e-9
等。两个问题:
1) 如何使用 MDS 的相似度矩阵或如何将相似度矩阵更改为不相似度矩阵?
2) 在 MDS 中,有一个选项dissimilarity
,其值可以是'precomputed'
或'euclidean'
。两者有什么区别,因为当我给出欧几里得时,无论我使用 cosine_similarity 还是 1-cosine_similarity ,MDS 坐标都会变得相同,这看起来是错误的。
谢谢!