Метод главных компонент (Principal component analysis)

Рассматриваем выборку

x
i

,

# i
1
,
…
,
N

{\displaystyle x\_i, ~i = 1, \dots ,N}

в пространстве признаков размерности

K

{\displaystyle K}

 (далее везде

k
⩽
K

{\displaystyle k \leqslant K}

).

Пусть

L

{\displaystyle L}

 - некоторое подпространство пространства признаков. Для объекта

x
i

{\displaystyle x\_i }

 введем разложение

x
i

=

p
i

h
i

{\displaystyle x\_i = p\_i + h\_i}

, где

p
i

∈
L

{\displaystyle p\_i \in L}

, а

h
i

{\displaystyle h\_i}

 ортогонально

L

{\displaystyle L}

.

По теореме Пифагора,

x
i

2

=

p
i

2

h
i

2

## Определение

**Опр.** *Главными компонентами* в пространстве признаков называются

k

{\displaystyle k}

 векторов, задающих ортонормированный базис

e
1

,

e
2

,
…
,

e
k

{\displaystyle e\_1, e\_2, \dots, e\_k}

,

k

{\displaystyle k}

-мерного подпространства

L

{\displaystyle L}

, такого что в нем

∑

# i
1

N

h
i

2

→
m
i
n

 (или

∑

# i
1

N

p
i

2

→
m
a
x

). Такое подпространство L называется *наилучшим*.

**Опр.** *Метод главных компонент (principal component analysis, PCA)* - способ уменьшения количества признаков с минимальной потерей информации. В данном методе вместо изначального пространства признаков берутся признаки в наилучшем пространстве (т.е. происходит замена

x
i

↔

x
i
′

,

x
i
′

=
(

x
1
i

,

x
2
i

,
…
,

x
k
i

)
,

x
j
i

=
(

x
i

,

e
j

)
,

# j
1
,
…
,
k
,

# i
1
,
…
,
N

{\displaystyle x\_i \leftrightarrow x\_i', ~x\_i' = (x\_1^i, x\_2^i, \dots , x\_k^i), ~x\_j^i = (x\_i, e\_j), ~j=1,\dots ,k, ~i=1,\dots ,N}

,

e
j

{\displaystyle e\_j}

 — главные компоненты)

## Свойства

* Не инвариантно к сдвигу на вектор.
* Не инвариантно к масштабированию.

Объяснить подробнее, добавить примеры

Как следствие перед поиском главных компонент необходимо выполнить нормировку (вычесть матожидание, разделить на дисперсию) объектов.

* Является наилучшим линейным приближением при фиксированной размерности (теряется минимум информации). (но это не точно.)

см. также Сингулярное разложение.

http://www.machinelearning.ru/wiki/index.php?title=%D0%9C%D0%B5%D1%82%D0%BE%D0%B4\_%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D1%8B%D1%85\_%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82

   Китов (слайд 15): какая связь PCA с регрессией с минимизацией квадратов?

## Построение

Неочевидна связь

X

e
1

 и максимизации квадратов длин проекций

Итеративно строится система ортонормированных векторов, построение происходит с помощью метода множителей Лагранжа. Пусть

X

{\displaystyle X}

 — выборка, а

e
1

,
.
.
.

e
k

{\displaystyle e\_1, ... e\_k }

 — искомая система.

* e
1

{\displaystyle e\_1}

 берётся таким, чтобы

X

e
1

→
m
a
x

s
.
t
.

⟨

e
1

,

e
1

# ⟩
1

.
* e
2

{\displaystyle e\_2}

 берётся таким, чтобы

X

e
2

→
m
a
x

s
.
t
.

⟨

e
2

,

e
2

# ⟩
1
,

⟨

e
1

,

e
2

# ⟩
0

.
* e
3

{\displaystyle e\_3}

 берётся таким, чтобы

X

e
3

→
m
a
x

s
.
t
.

⟨

e
3

,

e
3

# ⟩
1
,

⟨

e
1

,

e
3

# ⟩
0
,

⟨

e
2

,

e
3

# ⟩
0

Построим их:

#### Первая компонента

{

X

e
1

2

→

max

e
1

e
1

2

=
1

{\displaystyle

\begin{cases}

\end{cases}

}

Лагранжиан:

L

(

e
1

,
μ
# )

e
1
T

X
T

X

e
1

−
μ
(

e
1
T

e
1

−
1
)
→

max

e
1

,
μ

{\displaystyle \mathcal{L}(e\_1, \mu) = e\_1^T X^T X e\_1 - \mu(e\_1^T e\_1 - 1) \rightarrow \underset{e\_1, \mu}{\max} }

Получим производные:

∂

L

∂

e
1

=
2

X
T

X

e
1

−
2
μ

e
1

=
0
;

∂

L

∂
μ

=
1
−

e
1
T

e
1

=
0

{\displaystyle
\frac{\partial\mathcal{L}}{\partial e\_1} = 2X^T X e\_1 - 2\mu e\_1 = 0;
\frac{\partial\mathcal{L}}{\partial \mu} = 1 - e\_1^T e\_1 = 0
}

Второе ограничение тривиально. Из первого следует, что

e
1

{\displaystyle e\_1}

 — некоторый собственный вектор матрицы

X
T

X

{\displaystyle X^TX}

.

Воспользуемся нормализованностью вектора и тем, что это собственный вектор:

X

e
1

2

=

e
1
T

X
T

X

e
1

=

e
1
T

(

X
T

X
)

e
1

=

e
1
T

λ

e
1

=
λ
×
# 1
λ

, а мы и максимизируем эту величину. То есть получаем, что

e
1

{\displaystyle e\_1}

 надо взять одним из собственных векторов, соответствующих максимальному собственному значению матрицы

X
T

X

{\displaystyle X^TX}

. Вектор должен соответствовать ограничению на норму:

e
1

2

=
1

.

#### Вторая компонента

{

X

e
2

2

→

max

e
2

e
2

2

=
1

⟨

e
2

,

e
1

# ⟩
0

{\displaystyle

\begin{cases}

\langle e\_2, e\_1 \rangle = 0

\end{cases}

}

Лагранжиан:

L

(

e
2

,
μ
,
α
# )

e
2
T

X
T

X

e
2

−
μ
(

e
2
T

e
2

−
1
)
−
α

e
2
T

e
1

→

max

e
2

,
μ
,
α

{\displaystyle \mathcal{L}(e\_2, \mu, \alpha) = e\_2^T X^T X e\_2 - \mu(e\_2^T e\_2 - 1) - \alpha e\_2 ^T e\_1 \rightarrow \underset{e\_2, \mu, \alpha}{\max} }

Получим производные:

∂

L

∂

e
2

=
2

X
T

X

e
2

−
2
μ

e
2

−
α

e
1

=
0
;

∂

L

∂
μ

=
1
−

e
2
T

e
2

=
0
;

∂

L

∂
α

=
−

e
1
T

e
2

=
0

{\displaystyle
\frac{\partial\mathcal{L}}{\partial e\_2} = 2X^T X e\_2 - 2\mu e\_2 - \alpha e\_1 = 0;
\frac{\partial\mathcal{L}}{\partial \mu} = 1 - e\_2^T e\_2 = 0;
\frac{\partial\mathcal{L}}{\partial \alpha} = - e\_1^T e\_2 = 0
}

Последние ограничения тривиальны (так будет и для всех последующих компонент).

Мы бы хотели упростить первое уравнение, чтобы как-нибудь хорошо учесть

e
1

{\displaystyle e\_1}

. Для этого домножим это выражение на

e
1
T

{\displaystyle e\_1^T }

 слева:

e
1
T

∂

L

∂

e
2

=
2

e
1
T

X
T

X

e
2

−
2
μ

e
1
T

e
2

−
α

e
1
T

e
1

=
0

{\displaystyle
e\_1^T \frac{\partial\mathcal{L}}{\partial e\_2} = 2e\_1^T X^T X e\_2 - 2\mu e\_1^T e\_2 - \alpha e\_1^T e\_1 = 0
}

Получаем:

α

e
1
T

e
1

=
α

{\displaystyle
\alpha e\_1^T e\_1 = \alpha
}

и

2
μ

e
1
T

e
2

=
0

{\displaystyle
2\mu e\_1^T e\_2 = 0
}

Можно убедиться по размерностям, что

e
1
T

X
T

X

e
2

{\displaystyle
e\_1^T X^T X e\_2
}

 — скаляр. Мы можем его транспонировать и воспользоваться тем, что это собственный вектор, а также условием ортогональности:

(

e
1
T

X
T

X

e
2

)
T

=

e
2
T

X
T

X

e
1

=

e
2
T

λ

e
1

=
λ

e
2
T

e
1

=
0

{\displaystyle (e\_1^T X^T X e\_2)^T = e\_2^T X ^TX e\_1 = e\_2^T \lambda e\_1 = \lambda e\_2^T e\_1 = 0 }

Таким образом, мы получили, что

e
1
T

∂

L

∂

e
2

=
0
0
−
# α
0

{\displaystyle e\_1^T \frac{\partial\mathcal{L}}{\partial e\_2} = 0 + 0 - \alpha = 0
}

.

Следовательно, ограничение упрощается:

∂

L

∂

e
2

=
2

X
T

X

e
2

−
2
μ

e
2

=
0

{\displaystyle
\frac{\partial\mathcal{L}}{\partial e\_2} = 2X^T X e\_2 - 2\mu e\_2 = 0
}

Применив такие же рассуждения, как в для первой компоненты, мы получим, что

e
2

{\displaystyle e\_2}

 — собственный вектор, соответствующий второму по величине собственному значению матрицы

X
T

X

{\displaystyle X^TX}

.

#### k-я компонента

Для неё мы поступаем точно так же — записываем лагранжиан и избавляемся от неудобных членов в производной.

Для этого мы каждый раз домножаем на уже имеющиеся вектора

e
i

,
# i
{
1
,
…
,
k
−
1
}

{\displaystyle e\_i, i = \{1, \dots, k - 1\}}

, все члены, кроме члена вида

α
i

e
i
T

e
i

=

α
i

{\displaystyle \alpha\_i e\_i^T e\_i = \alpha\_i }

 занулятся (за счёт ортогональности и того, что всё это собственные вектора, смотри построение второй компоненты). И мы получим, что

α
i

=
0

{\displaystyle \alpha\_i = 0 }

 для всех лишних компонент. Проделав рассуждения, как для 1-ой компоненты, мы получим, что

e
k

{\displaystyle e\_k}

 – собственный вектор, соответствующий

λ
k

{\displaystyle \lambda\_k}

.

### Доказательство корректности построения

#### **Теорема**

Пусть

L

k

{\displaystyle \mathcal{L}\_{k} }

 – линейная оболочка векторов

e
1

,
.
.
.

e
k

{\displaystyle e\_1, ... e\_k }

. Тогда

∀
k
∈
{
1
,
…
,
D
}
:

{\displaystyle \forall k \in \{1, \dots, D\}: }

(\*откуда D? что это за D?)

L

k

{\displaystyle \mathcal{L}\_{k} }

 – наилучшее подпространство размерности

k

{\displaystyle k}

 для

X

{\displaystyle X}

.

#### **Доказательство**

Доказательство по индукции.

Для

# k
1

{\displaystyle k = 1}

 утверждение верно, так как максимизация проекции эквивалентна минимизации расстояния (если проекция ортогональная).

Пусть для

k
−
1

{\displaystyle k - 1}

 утверждение доказано, то есть

L

k
−
1

{\displaystyle \mathcal{L}\_{k - 1} }

 – наилучшее подпространство.

Пусть

L

k

{\displaystyle \mathcal{L}\_{k} }

 – наилучшее подпространство размерности

k

{\displaystyle k}

 (из определения наилучшего подпространства всегда следует его существование).

Выберем (всегда возможно) для него ортонормированный базис

b
1

,
…
,

b
k

{\displaystyle b\_1, \dots, b\_k }

 таким образом, что

{

b
k

=
1

⟨

b
k

,

e
i

# ⟩
0

∀
i
∈
{
1
,
…
,
k
−
1
}

{\displaystyle
\begin{cases}
\langle b\_k, e\_i \rangle = 0 ~ \forall i \in \{1, \dots, k-1\}
\end{cases}
}

Мы можем это сделать, потому что мы можем сначала выбрать

b
k

{\displaystyle b\_k}

 ортогональным к проекциям

e
1

,
…
,

e

k
−
1

{\displaystyle e\_1, \dots, e\_{k-1} }

 на

L

k

{\displaystyle \mathcal{L}\_{k} }

. Дальше мы строим оставшиеся вектора.
Эти условия нужны для того, чтобы

b
k

{\displaystyle b\_k}

 удовлетворял ограничениям, под которыми мы оптимизируем.

Ничё не понятно

 Мне не очень нравится это ограничение на b.

Запишем сумму квадратов норм проекций:

X

b
1

2

.
.
.

X

b
k

2

. По предположению индукции,

L

k
−
1

{\displaystyle \mathcal{L}\_{k - 1} }

 – наилучшее подпространство размерности

k
−
1

{\displaystyle k - 1}

, так что

X

b
1

2

.
.
.

X

b

k
−
1

2

≤

X

e
1

2

.
.
.

X

e

k
−
1

2

.

Посмотрим на то, как мы строим

e
k

{\displaystyle e\_k}

. Мы максимизируем норму проекции, а выше мы потребовали, что

b
1

,
…
,

b

k
−
1

{\displaystyle b\_1, \dots, b\_{k - 1} }

удовлетворяют таким ограничениям. Так что

X

b
k

2

≤

X

e
k

2

.

Таким образом, утверждение доказано, а это и есть корректность построения.

## Источники

http://www.machinelearning.ru/wiki/images/1/1a/Kitov-ML-eng-03-PCA.pdf (слайды 12 – 14)