Я хочу, чтобы визуализировать сходство текстовых документов, для которых я использую-х scikit учиться TfidfVectorizer в tfidf = TfidfVectorizer(decode_error='ignore', max_df=3).fit_transform(data)
Использование подобия матрицы вместо несходства матрицы для МДС в scikit учиться
, а затем выполняет вычисление косинуса подобия, как cosine_similarity = (tfidf*tfidf.T).toarray()
, который дает подобие, но sklearn.manifold.MDS
нуждается в матрице различий. Когда я даю 1-косинус-сходство, диагональные значения, которые должны быть равны нулю, не равны нулю. Они представляют собой небольшое значение, например 1.12e-9
и т. Д. Два вопроса:
1) Как использовать матрицу подобия для MDS или как изменить свою матрицу подобия на матрицу несходства?
2) В MDS есть опция dissimilarity
, значения которой могут быть 'precomputed'
или 'euclidean'
. В чем разница между ними, потому что, когда я даю евклидову, координаты MDS становятся одинаковыми, независимо от того, использую ли я cosine_similarity или 1-cosine_similarity, который выглядит неправильно.
Спасибо!