Я использую скрытое семантическое индексирование, чтобы найти сходство между документами ( спасибо, JMS! )
После уменьшения размеров я попытался использовать кластеризацию k-средних для группировки документов в кластеры, что очень хорошо работает. Но я хотел бы пойти немного дальше и визуализировать документы как набор узлов, где расстояние между любыми двумя узлами обратно пропорционально их сходству (очень похожие узлы расположены близко друг к другу).
Меня поражает, что я не могу точно уменьшить матрицу подобия для двумерного графа, так как мои данные> 2 измерения. Итак, мой первый вопрос: есть ли стандартный способ сделать это?
Могу ли я просто уменьшить свои данные до двух измерений и затем отобразить их как оси X и Y, и этого будет достаточно для группы из ~ 100-200 документов? Если это решение, лучше ли с самого начала сократить мои данные до двух измерений, или есть ли способ выбрать два «лучших» измерения из моих многомерных данных?
Я использую Python и библиотеку Gensim, если это имеет значение.
Ответы:
Это то, для чего предназначен MDS (многомерное масштабирование). Короче говоря, если вам дана матрица подобия M, вы хотите найти ближайшее приближение где имеет ранг 2. Это можно сделать, вычислив SVD где .S= ХИкс⊤ S M= VΛ V⊤= ХИкс⊤ Икс= VΛ1 / 2
Теперь, предполагая, что переставлен, так что собственные значения находятся в порядке убывания, первые два столбца - это желаемое вложение в плоскость.Λ Икс
Для MDS доступно много кода (и я был бы удивлен, если бы у scipy не было его версии). В любом случае, если у вас есть доступ к некоторой подпрограмме SVD в Python, вы настроены.
источник
Существует программное обеспечение под названием ggobi, которое может вам помочь. Это позволяет вам исследовать многомерные псевдопространства. Это в основном для исследования данных, но его интерфейс очень дружелюбный и «просто работает»!
Вам просто нужен формат CSV (в RI обычно просто используйте write.csv с параметрами по умолчанию) или файл XML (этот формат дает вам больше контроля; я обычно сохраняю свою таблицу в CSV, затем экспортирую ее в XML с помощью ggobi и редактирую вручную например, чтобы изменить порядок некоторых факторов).
источник