Skip to content

문제 10 · 주성분 분석 ​

문제 10 — 주성분 분석

아래 3개의 관측값이 주어졌다.

{(1,0),(0,1),(1,1)}

이 관측값들의 제 1 주성분을 구하시오.


평균을 x¯라 할 때 공분산 행렬은 S=1N∑n=1N(xn−x¯)(xn−x¯)⊤이다. 행렬 A의 고윳값 λ는 특성방정식 det(A−λI)=0으로 구하며, [abcd]의 행렬식은 ad−bc이다.

풀이 및 해설

평균:

x¯=(1+0+13, 0+1+13)=(23,23)

중심화된 데이터: (13,−23), (−23,13), (13,13).

공분산 행렬 (N=3):

S=13[(19−29−2949)+(49−29−2919)+(19191919)]=13(23−13−1323)=(29−19−1929)

고윳값 — det(S−λI)=(29−λ)2−(19)2=0:

29−λ=±19 ⟹ λ=19 또는 λ=13

제1 주성분 — 가장 큰 고윳값 λ1=13에 대응하는 고유벡터. (S−13I)v=0에서 −19v1−19v2=0⇒v1=−v2이므로

 v1∝(1,−1),정규화 12(1,−1) (λ1=13)

즉 데이터 분산이 최대인 방향은 (1,−1)이다. 두 점 (1,0),(0,1)이 이 축을 따라 크게 퍼져 있어 자연스러운 결과다.

👉 실습(Python)에서 공분산·고유분해 계산

PDF