주성분은 가장 퍼진 방향이다
책상에 좁쌀 한 줌을 흩뿌렸다고 해봐요. 알갱이들이 둥글게 퍼진 게 아니라 한쪽으로 길쭉하게 누워 있다면, 누구나 한눈에 '이 방향으로 가장 넓게 퍼졌네'라고 짚을 수 있죠. 주성분 분석(PCA)이 묻는 게 딱 이거예요. 데이터 구름에서 가장 퍼진 방향은 어디인가. 그 방향이 제1주성분(PC1)이고, 거기에 직각인 두 번째로 퍼진 방향이 PC2예요. 놀랍게도 이 두 방향은 데이터 공분산행렬의 고유벡터고, 각 방향의 퍼진 정도(분산)가 바로 고유값이에요. 8강에서 본 그 고유 개념이, 이번엔 데이터의 퍼짐에 그대로 쓰여요.
점구름을 끌어서 빙 돌려 보세요. 손잡이를 잡고 회전시키면 구름 전체가 함께 기울어요. 어느 각도로 돌리든, 점들을 감싸는 골드 타원(공분산을 1-시그마로 그린 것)이 구름과 같이 따라 돌죠. 그리고 그 타원 안에서 가장 긴 축(초록)이 PC1, 그에 직각인 짧은 축(주황)이 PC2예요. 두 축의 길이는 각 방향 분산의 제곱근, 곧 표준편차예요. 구름을 돌려도 PC1은 언제나 가장 길게 퍼진 쪽을 정확히 가리켜요. 이 축들이 바로 점들로 계산한 공분산행렬의 고유벡터예요.
이번엔 슬라이더로 구름의 각도만 바꿔 보세요. 화살표 두 개, PC1(초록)과 PC2(주황)가 늘 따라붙어요. PC1은 분산이 가장 큰 방향, PC2는 거기에 정확히 직각인 두 번째 방향이에요. 슬라이더를 어디에 두든 두 축은 항상 90도를 유지해요. 대칭 공분산행렬의 고유벡터는 언제나 서로 직교하기 때문이에요. 그러니 주성분들은 겹치지 않는 방향들로 데이터를 깔끔하게 분해해 줘요. 한 축의 정보가 다른 축에 새지 않는다는 뜻이죠.
왜 PC1이 특별한지 직접 재 보세요. 슬라이더로 한 방향의 직선을 돌리면, 모든 점을 그 직선 위로 수직 투영해 발자국을 찍어요. 그 발자국들이 직선 위에서 얼마나 퍼졌는지가 그 방향의 분산이에요. 막대가 그 값을 보여줘요. 직선을 이리저리 돌려 보면, 분산은 PC1과 나란할 때 최댓값으로 솟고 PC2와 나란할 때 최솟값으로 가라앉아요. 그래서 PC1은 '분산을 최대로 만드는 방향'이라고도 정의해요. 가장 퍼진 방향이 곧 정보가 가장 많이 살아 있는 방향이에요.
이제 진짜 쓸모로 가요. 차원 축소예요. 토글로 PC1 또는 PC2 중 하나의 축만 남겨 보세요. 점들이 그 축 위로 납작하게 눌리고, 버려진 직각 방향은 점선 꼬리(복원 오차)로 표시돼요. 읽기 값은 버린 축의 분산, 곧 잃어버린 정보의 양이에요. PC1만 남기면 꼬리가 가장 짧아요. 가장 안 퍼진 방향을 버렸으니 잃은 게 가장 적죠. 2D를 1D로 줄이면서도 손실을 최소로 하는 것, 그게 PCA로 데이터를 압축하는 방식이에요.
마지막으로, 몇 차원이 정말 필요한지 묻는 도구예요. 슬라이더로 구름을 둥근 모양에서 아주 길쭉한 모양까지 늘여 보세요. 두 막대가 고유값의 비율을 보여줘요. 위는 람다1/(람다1+람다2), 아래는 람다2/(람다1+람다2)예요. 구름이 둥글면 두 막대가 거의 50대 50이라 한 축만 남기면 절반을 잃어요. 길쭉해질수록 PC1 막대가 100퍼센트에 다가가고 PC2는 거의 0이 돼요. 그땐 한 축만 남겨도 정보를 거의 다 지켜요. 이 '설명된 분산' 비율이, 데이터를 몇 차원으로 줄여도 괜찮은지를 알려주는 잣대예요.