Главная       Скачать       Коммерческая поддержка       FAQ       Forum       О нас       Английская версия

Метод главных компонент

Метод главных компонент - это один из способов понижения размерности, состоящий в переходе к новому ортогональному базису, оси которого ориентированы по направлениям максимальной дисперсии набора входных данных. Вдоль первой оси нового базиса дисперсия максимальна, вторая ось максимизирует дисперсию при условии ортогональности первой оси, и т.д., последняя ось имеет минимальную дисперсию из всех возможных. Такое преобразование позволяет понижать информацию путем отбрасывания координат, соответствующих направлениям с минимальной дисперсией. Предполагается, что если нам надо отказаться от одного из базисных векторов, то лучше, если это будет тот вектор, вдоль которого набор входных данных меняется менее значительно.

Можно отметить, что в основе метода главных компонент лежат следующие допущения:

Можно легко видеть, что эти условия далеко не всегда выполняются. Например, если точки входного множества располагаются на поверхности гиперсферы, то никакое линейное преобразование не сможет понизить размерность (но с этим легко справится нелинейное преобразование, опирающееся на расстояние от точки до центра сферы). Это недостаток в равной мере свойственен всем линейным алгоритмам и может быть преодолен за счет использования дополнительных фиктивных переменных, являющихся нелинейными функциями от элементов набора входных данных (т.н. kernel trick).

Второй недостаток метода главных компонент состоит в том, что направления, максимизирующие дисперсию, далеко не всегда максимизируют информативность. На странице подпрограммы линейного дискриминантного анализа приведен пример такой задачи - переменная с максимальной дисперсией не несет почти никакой информации, в то время как переменная с минимальной дисперсией позволяет полностью разделить классы. Метод главных компонент в данном случае отдаст предпочтение первой (менее информативной) переменной. Этот недостаток тесно связан с тем, что метод главных компонент не осуществляет линейное разделение классов, линейную регрессию или иные подобные операции - он всего лишь позволяет оптимальным образом восстановить входной вектор на основе неполной информации о нем. Вся дополнительная информация, связанная с вектором (например, принадлежность образа к одному из классов), игнорируется.

Manual entries

C++ pca subpackage   
C# pca subpackage   

This article is intended for personal use only.

Скачать ALGLIB

C#

Исходный код на C#

Downloads page

 

C++

Исходный код на C++

Downloads page

 

C++, арифметика высокой точности

Исходный код на C++, использующий библиотеки MPFR/GMP.

Исходный код GMP доступен на сайте gmplib.org. Исходный код MPFR доступен на сайте www.mpfr.org.

Downloads page

 

FreePascal

Исходный код на Free Pascal.

Downloads page

 

Delphi

Исходный код на Delphi.

Downloads page

 

VB.NET

Исходный код на VB.NET.

Downloads page

 

VBA

Исходный код на VBA.

Downloads page

 

Python

Исходный код на Python (CPython и IronPython).

Downloads page

 

 

ALGLIB® - numerical analysis library, 1999-2017.
ALGLIB is registered trademark of the ALGLIB Project.