직교행렬의 특징에 대해서도 알아야 합니다.
우선 PCA의 과정을 간추려보자.
행렬 A를 아래와 같이 정의해보자
각 열은 공정 하나의 데이터 혹은 데이터마이닝에서 instance내지 transaction으로 부르는 것이다. 또, 각 행은 특성, 혹은 attribute라고 부르는 것이다.
즉, 확보된 데이터가 충분히 크다면 이는 (n>m)이 되어 Thin matrix가 된다.
1) 공분산행렬을 고유값분해(Eigenvalue decomposition of covariance matrix)
여기서 P에다가 고유값분해를 시전하면
가 되는데 여기서 S는 P의 고유벡터들을 가로로 눕힌것들의 집합이다.
여기서 행렬 S를 뽑는다. P는 대칭행렬이므로(공분산은 교환법칙이 성립하므로, 대칭행렬이 될수밖에 없음) S는 직교행렬이 되고, 직교행렬의 특징에따라
를 만족한다.
이와같은 절차로 S의 각 행을 주성분(Principal component)라고 한다.
2)데이터행렬을 특이값분해(Singular value decomposition)
특이값분해는 아래와 같다.
이며, 분해된 각 행렬들은
U:AA'의 고유벡터들을 세로로 세워둔거
Σ:A'A의 고유값들의 대각행렬을 포함하는 직사각행렬
V:A'A의 고유벡터들을 세로로 세워둔 것.
여기서 A'A의 특징을 잘 알아볼 이유가 있는데 이는 행렬의 곱연산의 정의로 보면...
이 되는데, 벡터의 내적을 n으로 나누면 공분산이 된다.(공분산의 정의 참고)
즉 A'A를 고유값분해하는 것은 P의 고유벡터인 S를 찾는것이 된다.
S=kV'
따라서 A=BS로 분해한다는 것은 A=kBV'가 되는 것이며, kB=UΣ이므로 이또한 직교행렬이 된다.
직교행렬이라는 것은 서로 다른 열끼리의 내적값이 0이라는 것이므로, 상관계수가 0이라는 뜻이다.