Я пытаюсь выполнить кластеризацию на уровне документов. Я построил матрицу частот термина-документа, и я пытаюсь кластеризовать эти высокоразмерные векторы с помощью k-средних. Вместо непосредственной кластеризации я сначала применил разложение сингулярных векторов LSA (скрытый семантический анализ) для получения матриц U, S, Vt, выбрал подходящий порог с использованием графика осей и применил кластеризацию к уменьшенным матрицам (особенно Vt, потому что это дает мне информацию о концептуальном документе), которая, казалось, дает мне хорошие результаты.
Я слышал, что некоторые люди говорят, что SVD (разложение по сингулярному вектору) является кластеризацией (используя меру косинусного сходства и т. Д.), И не был уверен, смогу ли я применить k-средства на выходе SVD. Я думал, что это логически правильно, потому что SVD - это метод уменьшения размерности, который дает мне кучу новых векторов. k-means, с другой стороны, примет количество кластеров в качестве входных данных и разделит эти векторы на указанное количество кластеров. Эта процедура ошибочна или есть способы, которыми это можно улучшить? Какие-либо предложения?
Ответы:
Это ни в коем случае не полный ответ, вопрос, который вы должны задать: «какие расстояния сохраняются при уменьшении размерности?». Поскольку алгоритмы кластеризации, такие как K-средства, работают только на расстояниях, подходящая метрика расстояния (теоретически) - это метрика расстояния, которая сохраняется за счет уменьшения размерности. Таким образом, этап уменьшения размерности можно рассматривать как вычислительный ярлык для кластеризации данных в пространстве меньшего размера. (также, чтобы избежать локальных минимумов и т. д.)
Здесь есть много тонкостей, которые я не буду притворяться, чтобы понять, (локальные расстояния против глобальных расстояний, как относительные расстояния искажены и т. Д.), Но я думаю, что это правильное направление, чтобы думать об этих вещах теоретически.
источник
В ответ на ваш заголовок "Когда мы объединяем уменьшение размерности с кластеризацией?" а не полный вопрос. Одна из возможных причин очевидна: когда мы хотим защитить агастеров. K-означает, что алгоритм, если без подсказки начальных центров, принимает k наиболее удаленных точек в облаке в качестве начальных центров, и именно они могут быть выбросами. Преактирование с помощью PCA нейтрализует выбросы, которые лежат вдоль младших компонентов, проецируя их на несколько старших компонентов, которые сохраняются в PCA.
источник