2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


В этом разделе нельзя создавать новые темы.



Начать новую тему Ответить на тему
 
 Метод главных компонент для малой выборки
Сообщение08.08.2008, 09:28 


13/06/06
51
В моем исследовании стоит задача вычисления главных компонент.
Нашел более менее удобную библиотеку на C++ для PCA - OpenCV.
Моя задача стоит получить поворот исходной системы координат без удаления осей (в компонентном анализе обычно отбрасывают "неглавные" компоненты), т.е. обязательно просто поворот.

Но вот проблема в OpenCV обязательное ограничение - количество возвращаемых собственных векторов будет не больше чем размер выборки (n) в случае если размер выборки меньше чем количество осей в векторах исходной выборки (k).
Т.е. когда n>k все нормально - я получаю нужные мне k собственных векторов.
Но когда n<k OpenCV может выдасть только n собственных векторов.

Я посмотрел алгоритм вычисления главных компонент в OpenCV:
1. Центрирование данных по средним
2. Вычисление ковариционной матрицы.
3. Сингулярное разложение.

Я никак немногу понять что из этих операций наложило такое ограничение?
Могу ли я обойти такое ограничение?
Или вообще отказаться от сингулярного разложения и пользоваться другим методом.
Какой есть алгоритм который корректно может вычислить поворот системы координат даже для малой выборки?

 Профиль  
                  
 
 Re: Метод главных компонент для малой выборки
Сообщение08.08.2008, 09:36 
Заслуженный участник


11/05/08
32166
Andrey Soloduhin писал(а):
Но вот проблема в OpenCV обязательное ограничение - количество возвращаемых собственных векторов будет не больше чем размер выборки (n) в случае если размер выборки меньше чем количество осей в векторах исходной выборки (k).
Т.е. когда n>k все нормально - я получаю нужные мне k собственных векторов.
Но когда n<k OpenCV может выдасть только n собственных векторов.

А откуда их возьмётся больше?

Если формально Вы работаете в $k$-мерном пространстве, но входных данных только $n$, причем $n<k$, то фактически всё происходит лишь в соотв. не более чем $n$-мерном подпространстве. Вот оттуда собственные векторы и будут браться.

 Профиль  
                  
 
 Re: Метод главных компонент для малой выборки
Сообщение08.08.2008, 09:59 


13/06/06
51
ewert писал(а):
то фактически всё происходит лишь в соотв. не более чем $n$-мерном подпространстве.

А почему так получается?
Такой вопрос у меня наверно изза главной проблемы - я немогу понять идею сингулярного разложения - везде где читал непонятно написано (для меня :D).

Могу ли я дробится просто поворота системы координат?
Или какой мне метод выбрать чтобы получить поворот всей системы координат?

 Профиль  
                  
 
 Re: Метод главных компонент для малой выборки
Сообщение08.08.2008, 10:08 
Заслуженный участник


11/05/08
32166
Andrey Soloduhin писал(а):
Такой вопрос у меня наверно изза главной проблемы - я немогу понять идею сингулярного разложения - везде где читал непонятно написано (для меня :D).

Этого я тоже не могу понять. Поскольку ковариационная матрица симметрична (и даже неотрицательна), речь может идти только о приведении её к диагональному виду с помощью поворотов. Сингулярные разложения имеют смысл только в неэрмитовых случаях.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group