오늘 끝나면
주성분 분석 (PCA)
- ✓주성분 분석 (PCA)의 핵심 문제를 한 문장으로 설명한다
- ✓오른쪽 실습에서 주성분이 어떻게 움직이는지 관찰한다
- ✓다음 강의와 이어지는 한계를 말할 수 있다
실습 미션
변수가 너무 많으니 핵심만 추려라 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.
성공 조건
- □실습의 기본값을 먼저 관찰
- □입력값이나 모드를 한 번 이상 바꿔 결과 비교
- □왜 결과가 바뀌었는지 한 문장으로 설명
통계 · 21
주성분 분석
(PCA)
변수가 수십 개면 보기도 계산도 어렵다.
PCA는 데이터가 가장 많이 퍼진 축만 추려 차원을 줄인다.
정보 대부분을 지키면서 변수 개수를 확 낮추는 도구다.
변수가 많으면 중복이 생긴다
변수가 2개면 산점도 한 장으로 본다. 50개면? 못 본다.
변수가 많으면 두 가지가 동시에 터진다.
우선 보기 어렵다. 사람은 2~3차원까지만 그린다.
계산도 무겁다. 차원이 늘수록 모델이 느려지고 과적합 위험도 커진다.
게다가 변수끼리 중복이 많다.
키가 크면 몸무게도 대개 크니, 두 변수가 거의 같은 말을 한다.
이런 중복을 합쳐 더 적은 축으로 같은 정보를 담을 수 있다.
한 변수만 알면 다른 변수도 대충 안다. 이게 중복이다
분산이 가장 큰 방향이 주성분이다
PCA의 아이디어는 한 줄이다. 데이터가 가장 많이 퍼진 방향을 새 축으로 삼는다.
많이 퍼졌다는 건 분산이 크다는 뜻이고, 분산이 크면 정보가 많다.
그래서 분산이 최대가 되는 방향을 찾아 그걸 제1주성분(PC1)이라 부른다.
그 다음, PC1에 직교하면서 남은 분산이 가장 큰 방향이 제2주성분(PC2)이다.
축들은 서로 직교하고, 새 좌표계가 된다.
x·y 대신 PC1·PC2로 점의 위치를 다시 적는 셈이다.
정보는 그대로인데 축만 데이터에 맞게 회전한 것이다.
수학으로 한 줄
PC1 방향은 데이터의 공분산행렬 Σ의 가장 큰 고유값에 대응하는 고유벡터다.고유값 λ가 곧 그 축이 담는 분산의 크기다.
즉 PCA는 공분산행렬의 고유분해이고, 큰 λ 순서로 축을 줄세우는 것이다.
PC1은 가장 퍼진 쪽, PC2는 거기 직각이다
직접 돌려보면 축이 따라 돈다
점구름 모양을 바꾸면 주성분 축이 따라 돈다.
점구름을 길쭉하게 늘리거나 회전시켜 보자.
파란 화살표(PC1)가 항상 가장 길게 퍼진 쪽을 가리키며 따라 돈다.
PC2는 거기에 직각으로 붙어 다니니, 직교가 눈에 보인다.
PC1 한 축에 사영하면 2차원이 1차원으로 줄어든다.
그런데도 보존 분산 비율은 꽤 높게 유지된다.
길쭉할수록 한 축에 정보가 몰려 손해가 적고, 둥글수록 줄이면 많이 잃는다.
길쭉할수록 PC1 한 축에 정보가 몰린다. 지금 92%. 한 축만 남겨도 거의 안 잃는다.
앞 몇 축만 남겨 차원을 줄인다
주성분은 분산 큰 순서로 줄세워져 있다. 앞 몇 개만 남기면 된다.
보통 앞쪽 몇 축이 전체 분산의 대부분을 담는다.
예를 들어 PC1+PC2가 90%를 담으면, 뒤 축들은 버려도 정보 10%만 잃는다.
50개 변수를 2~3개 축으로 줄이고도 큰 그림은 그대로다.
그래서 PCA의 쓸모는 두 가지다.
하나는 시각화다. 고차원 데이터를 2D로 눌러 한 장에 그린다.
다른 하나는 노이즈 제거다. 분산 작은 뒤 축은 대개 잡음이라, 잘라내면 깔끔해진다.
앞 2축만 남겨도 85% 보존하니, 나머지 4축은 잘라도 된다
정리하면 회전하고 자른다
PCA는 두 동작으로 끝난다. 데이터에 맞게 축을 회전하고, 뒤 축을 자른다.
1) 분산 최대 방향으로 새 축(주성분)을 찾는다. 이게 회전이다.
2) 분산 큰 앞 축 몇 개만 남기고 나머지는 버린다. 이게 차원 축소다.
남은 축에 점을 사영하면 더 적은 변수로 같은 정보를 담는다.
한 가지 주의할 점이 있다. 분산을 기준 삼으니 변수 단위(스케일)에 민감하다.
단위가 다른 변수는 보통 표준화(평균0·분산1)한 뒤 PCA를 돌린다.
Q. PCA가 첫 번째 주성분으로 고르는 방향은?
데이터의 분산이 가장 큰(가장 많이 퍼진) 방향이다.그 방향이 정보를 가장 많이 담기 때문이고, 공분산행렬의 최대 고유값에 대응하는 축이다.
회전한 다음 자른다. 이게 차원 축소의 전부다