Сингулярное разложение матрицы: оптимальное значение k

lana

как найти оптимальное значение ранга матрицы, к которой надо редуцировать исходную матрицу при сингулярном разложении? нашла статью, где это делается с помощью критерия Акаике, но формула, которaя там приводится для вычисления критерия Акаике подразумевает каждый раз вичислять многомерный интеграл, что не тру

lenmas

Ты об чем вообще? Можешь нормально формулировать содержание вопроса: что ты делаешь и что тебе нужно?

Lene81

Да, я бы тоже попросил уточнения. SVD он матричных проблем касается, при чем тут многомерные интегралы?

Niklz

телепат моде: наверное имеется ввиду low-rank matrix approximation.
но что ты понимаешь под оптимальным рангом? тебе лично какой ранг нужен?

lana

У меня есть матрица: в строках у нее слова, в столбцах — документы, элементами матрицы представляют собой частоту появления слова в документе(матрица термы на документы term-document matrix ) Мне нужно выявить латентныe зависимости внутри множества документов. Для этого обычно к исходной матрице применяют метод сингулярного разложения. Основная идея латентно-семантического анализа состоит в том, что если в качестве матрицы использовалась матрица термы-на-документы, то матрица, содержащая только первых линейно независимых k компонент , отражает основную структуру различных зависимостей, присутствующих в исходной матрице. Если выбранное значение k слишком велико, то метод теряет свою мощность и приближается по характеристикам к стандартным векторным методам. Слишком маленькое значение k не позволяет улавливать различия между похожими термами или документами. Как выбирают это k?

lenmas

У меня есть матрица: в строках у нее слова, в столбцах — документы, элементами матрицы представляют собой частоту появления слова в документе(матрица термы на документы term-document matrix ) Мне нужно выявить латентныe зависимости внутри множества документов. Для этого обычно к исходной матрице применяют метод сингулярного разложения. Основная идея латентно-семантического анализа состоит в том, что если в качестве матрицы использовалась матрица термы-на-документы, то матрица, содержащая только первых линейно независимых k компонент , отражает основную структуру различных зависимостей, присутствующих в исходной матрице. Если выбранное значение k слишком велико, то метод теряет свою мощность и приближается по характеристикам к стандартным векторным методам. Слишком маленькое значение k не позволяет улавливать различия между похожими термами или документами. Как выбирают это k?
Ну ты возьми сингулярные числа и отсей, например, 30 % самых маленьких сингулярных чисел (в сумме). По похожему принципу действует функция rank(A,epsilon) в matlab'е — она просто отсекает все сингулярные числа меньше epsilon и выдает число оставшихся.

Niklz

их и так всегда самые мелкие отбрасывают. вопрос топикстартера - как выбрать оптимальный порог отсечения. твой ответ, я так понял - 30% ? :)

lenmas

их и так всегда самые мелкие отбрасывают. вопрос топикстартера - как выбрать оптимальный порог отсечения. твой ответ, я так понял - 30% ?
Не, я от балды назвал 30 :) Все зависит от практического контекста. В некоторых задачах 0,99 мало :(
P.S. В реальности все делается так: берешь разные пороги отсечения и смотришь на результаты. Выбираешь золотую середину — это когда и овцы сыты, и волки целы.

Niklz

>> В реальности все делается так: берешь разные пороги отсечения и смотришь на результаты. Выбираешь золотую середину
Ну прямо откровение за откровением! :)

lenmas

Ну прямо откровение за откровением!
Ну а что поделаешь? Если автор хочет конкретных советов, пусть выкладывает данные для задачи.

lana

по идее мне надо, чтобы оптимальное k считалось автоматически для любых входных данных..
я нашла статью http://dl.acm.org/citation.cfm?id=1277893, где для поиска оптимального k применяется Akaike criterion Они предполагают, что документы имеют нормальное распределение, выпивают функцию правдоподобия, которая представляет собой многомерный интеграл и входит в критерий Aкаике.. затем вычисляют критерий для каждого k, а k, на котором он минимален, принимают за оптимальное

lana

это по сути тоже самое, что ребята выше предлагали

lanochka

Да, просто чуть нагляднее.
P.S. Судя по описанию вашей задачи, вам также подойдет LDA - очень крутая и популярная сейчас вероятностная модель, одно из применений которой как раз topic modelling.

lana

спасибо!
Оставить комментарий
Имя или ник:
Комментарий: