Отказ от ответственности: я новичок в машинном обучении.
Я работаю над визуализацией многомерных данных (текста в виде векторов tdidf) в 2D-пространство.Моя цель - пометить / изменить эти точки данных и пересчитать их позиции после изменения и обновления 2D-графика.Логика уже работает, но каждая итеративная визуализация сильно отличается от предыдущей, хотя изменилась только 1 из 28 000 функций в 1 точке данных.
Некоторые сведения о проекте:
- ~ 1000 текстовых документов / точек данных
- ~ 28.000 векторных объектов tfidf каждая
- должна вычисляться довольно быстро (скажем, <3 с) благодаря своей интерактивной природе </li>
Вот 2 изображения для иллюстрации проблемы:
Шаг 1 : ![Step 1](https://i.stack.imgur.com/Cq29G.png)
Шаг 2 : ![Step2](https://i.stack.imgur.com/MHfaH.png)
Я пробовал несколько алгоритмов уменьшения размерности, включая MDS, PCA, TSNE, UMAP, LSI и Autoencoder.Наилучшие результаты в отношении вычислений времени и визуального представления, которые я получил с помощью UMAP, поэтому я придерживался его по большей части.
Просматривая некоторые исследовательские работы, я нашел эту с похожей проблемой (небольшое изменение в высоком измерении, приводящее кбольшое изменение в 2D): https://ieeexplore.ieee.org/document/7539329 Таким образом, они используют t-sne для инициализации каждого итеративного шага с результатом первого шага.
Первое: как бы я пошел для достижения этого на самом делекод?Связано ли это с tsne random_state
?
Второе: возможно ли применить эту стратегию к другим алгоритмам, таким как UMAP?tsne занимает намного больше времени и не подходит для интерактивного использования.
Или есть какое-то лучшее решение, о котором я не задумывался для этой проблемы?