2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Библиотеки С++ для разложения на главные компоненты (PCA)
Сообщение02.07.2019, 20:27 


02/07/19
52
Подскажите библиотеки для C++ для быстрого разложения матриц порядка 500х2000 на небольшое число главные компоненты (10-20). При этом разложение будет использоваться внутри итерационного цикла. Требуется быстродействие. Для матричных вычислений на данный момент я пока использую только Eigen. В Eigen вроде бы есть встроенные алгоритмы, но они выполняют полное разложение, что очень долго и не нужно. Написал свою функцию разложения по NIPALS под Eigen, но там есть две проблемы. У меня опыт С++ полгода и потому я просто уверен, что функция не оптимизирована по быстродействию. Плюс сравнение результатов разложения для Eigen с данными Unscrambler и такой же процедурой в Wolfram Mathematica показывают, что для некоторых ГК моя функция может давать ошибку в счетах до 5%, что не очень хорошо.
Можете ли вы дать мне какие-то рекомендации по библиотекам?

 Профиль  
                  
 
 Re: Библиотеки С++ для разложения на главные компоненты (PCA)
Сообщение03.07.2019, 14:40 


09/05/16
138
McConst в сообщении #1402729 писал(а):
В Eigen вроде бы есть встроенные алгоритмы, но они выполняют полное разложение, что очень долго и не нужно. Написал свою функцию разложения по NIPALS под Eigen


RedSVD делает SVD с заданным (меньшим, чем полное) количеством компонентов. Что даст PCA, сделанный на его основе?

McConst в сообщении #1402729 писал(а):
уверен, что функция не оптимизирована по быстродействию.


Что говорит profiler?

 Профиль  
                  
 
 Re: Библиотеки С++ для разложения на главные компоненты (PCA)
Сообщение03.07.2019, 15:14 


02/07/19
52
Большое спасибо за ссылки!!!

 Профиль  
                  
 
 Posted automatically
Сообщение03.07.2019, 15:28 
Заслуженный участник


09/05/12
25179
 i  Тема перемещена из форума «Искусственный интеллект и Машинное обучение» в форум «Программирование»
Причина переноса: пожалуй, это скорее сюда.

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

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



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

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


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

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