Собственно мое понимание PCA. У исходной матрицы А - колонки - это измерения, строки - это наблюдения/эсперименты Считаем ковариационную матрицу - А' * A вычесть среднее. Потом у ковариационной матрицы находим нужное кол-во собственных векторов - они и будут главными компонентами.
Но при попытке разобраться в opencv-шной реализации PCA меня ждал сюрприз. Допустим, что у нас матрица 2х10000. Т е явно хочется снизить размерность. Если мы посчитаем A' * A - то получиться вычисление ковариационки - 10000 х 10000, что over 9000. Отчаянные парни из opencv делают следующее. Они умножают A * A' , получают ковариационку - 2 х 2. Считают её собственные вектора, которые имеют размерность 2 и их 2 штука. (упаковывают их в матрицу 2х2 - eigenvectors). Потом они считают вектор средних для А, который будет иметь размерность 1 х 10000. Потом дублируют его как строку столько раз, сколько строк в матрице изначальной (ну и получают размерность, как изначальная матрица) - назовём её mean_mat. И потом происходит следующий финт, даже не ушами, а чем-то похлеще. Eigenvectors = Eigenvectors' * mean_mat. В итоге получается матрица 2 * 10000. Как я понимаю - это 2 «собственных» вектора по 10000 каждый. Т е по крайней мере размер векторов получается такой, как если бы они изначально ковариационку правильно посчитали - A' * A. Только вот почему эти ребята имеют право так поступать? Есть у этого алгоритма ловкого вычисления собственных векторов имя? И почему его не используют в lda реализации из opencv (там честно считают ков. матрицы 10000 х 10000).
Ответ на:
комментарий
от psv1967
Ответ на:
комментарий
от LIKAN
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Как расковырять вектор векторов? (2011)
- Форум Вычисление. (2013)
- Форум Решение задачи нахождения собственных векторов в общем виде (2016)
- Форум Зарандомить вектором? (2018)
- Форум Реализация векторов (2014)
- Форум C++ векторы (2015)
- Форум Про вектор (2008)
- Форум Угол вектора после сложения двух векторов (2011)
- Форум Добавить вектор в вектор с максимальной производительностью (2018)
- Форум Смартфоны: вектор вырождения (2016)