Получение собственных векторов для самых больших n собственных значений в OpenCV

Я применяю Kernel PCA для задачи извлечения признаков в задаче компьютерного зрения, которая включает решение проблемы собственных значений для очень большой матрицы симметрии, например размером 6400x6400. Я использую OpenCV в своей реализации и использую метод cv::eigen для EigenDecomposition. Этот метод вычисляет все собственные значения и собственные векторы заданной матрицы, что становится легко неразрешимым в случае очень больших и плотных матриц, как в моем случае, поскольку, насколько мне известно, задача имеет сложность O(N^3). Но на самом деле мне нужно только небольшое подмножество собственных векторов, которые соответствуют n наибольшим собственным значениям матрицы, то есть n ‹ N. Есть ли какой-либо метод, доступный в OpenCV для этой цели, который вычисляет только некоторые из наибольших собственных значений и их соответствующие собственные векторы? Мне не удалось найти такой метод в документации OpenCV. Также приветствуется любой метод из любой другой библиотеки.


person Ufuk Can Bicici    schedule 03.01.2015    source источник
comment
посмотрите здесь   -  person berak    schedule 03.01.2015
comment
Я знаю класс PCA, но он мне не подходит. Я не делаю обычный PCA для массива данных. Kernel PCA — это специальная версия PCA, которая применяет PCA к данным в пространстве ядра, что неявно выполняется, когда мы применяем собственное разложение к матрице Грама входных данных. Мой ввод - это не точки данных, а сама матрица, которую нужно разложить (представьте, что это ковариационная матрица в обычном PCA)   -  person Ufuk Can Bicici    schedule 03.01.2015
comment
попробуйте ответить @ramanujan в stackoverflow.com/questions/713878/ он говорит использовать The canonical algorithm is the Arnoldi-Lanczos iterative algorithm implemented in ARPACK   -  person Micka    schedule 03.01.2015
comment
поскольку ваша матрица симметрична (не читал), могут быть более эффективные решения, не уверен. Но ссылка, которую я предоставил, моя помощь в любом случае.   -  person Micka    schedule 03.01.2015