Візуалізація багатовимірних даних (LSI) у 2D


11

Я використовую приховану семантичну індексацію, щоб знайти схожість між документами ( спасибі, JMS! )

Після зменшення розміру я спробував кластеризувати k-засоби, щоб згрупувати документи в кластери, що працює дуже добре. Але я хотів би піти трохи далі і візуалізувати документи як набір вузлів, де відстань між будь-якими двома вузлами обернено пропорційна їх схожості (вузли, які дуже схожі, близькі між собою).

Мене вражає, що я не можу точно зменшити матрицю подібності до двовимірного графіка, оскільки мої дані> 2 виміри. Тож перше моє запитання: чи є стандартний спосіб це зробити?

Чи можу я просто зменшити свої дані до двох вимірів, а потім побудувати їх як вісь X і Y, і чи вистачить цього для групи ~ 100-200 документів? Якщо це рішення, чи краще зменшити мої дані до 2-х вимірів з самого початку, або є якийсь спосіб вибрати два "найкращі" виміри з моїх багатовимірних даних?

Я використовую Python та бібліотеку gensim, якщо це має значення.


Для чого потрібно зменшити розмірність? Для побудови потрібного графіка вам потрібні лише краї, де довжина ребра пропорційна відстані між документами. Це ви вже маєте з показника, який використовується для кластеризації k-засобів.
Аман

@ Аман, який не працює для відображення подібності між> 2 документами на 2D площині (графік). звичайно, я можу побудувати точки A і B з розділенням на відстані k-означає. але тоді, коли мені потрібно побудувати точку С, виходячи з відстаней до А і В, зазвичай немає точки в двовимірному просторі, яка б задовольняла всі попарні відносини.
Джефф

Відповіді:


7

Саме для цього розроблено MDS (багатовимірне масштабування). Якщо коротко, якщо вам надана матриця подібності M, ви хочете знайти найближче наближення де має ранг 2. Це можна зробити, обчисливши SVD де .S=ХХSМ=VΛV=ХХХ=VΛ1/2

Тепер, якщо припустити, що перестановлено, так що власні значення знаходяться в порядку зменшення, перші два стовпці це ваше бажане вбудовування в площину.ΛХ

Існує безліч кодів для MDS (і я буду здивований, якщо у scipy немає певної його версії). У будь-якому випадку, якщо у вас встановлений доступ до якоїсь SVD-програми у python, яку ви встановили.


1
Я думаю, що для цього буде краще для LDA. PCA - як ви отримаєте через SVD - не збереже жодної кластерної (класової) дискримінаційної інформації, через яку йде ОП.
Жубарб

0

Існує програмне забезпечення під назвою ggobi, яке може вам допомогти. Це дозволяє досліджувати багатовимірні псевдопростори. Це в основному для дослідження даних, але його інтерфейс надзвичайно дружній і "він просто працює"!

Вам просто потрібен формат CSV (в RI зазвичай просто використовують write.csv з параметрами за замовчуванням) або XML-файл (цей формат дозволяє вам більше контролю; я зазвичай зберігаю свою таблицю в CSV, потім експортую її в XML за допомогою ggobi і редагую її вручну наприклад, змінити порядок деяких факторів).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.