Machine Learning/Theory

주성분 분석(Principal Component Analysis, PCA)

ju_young 2021. 7. 13. 13:43
728x90

주성분 분석(Principal Component Analysis)이란 고차원의 데이터를 저차원의 데이터로 차원 축소하는 알고리즘이다. 주로 고차원의 데이터를 3차원 이하의 데이터로 바꿔서 시각화하는데 많이 사용되며, 유용한 정보만 살려서 적은 메모리에 저장하거나 데이터의 노이즈를 줄이고 싶을 때도 사용하는 알고리즘이다.

 

이해하기 쉽게 시각화 가능한 2차원 데이터를 1차원 데이터로 축소하는 과정을 알아보겠다.

위와 같은 2차원 공간의 데이터들을 직선상의 데이터로 변환하면 다음과 같다.

보다시피 x1과 x2 선상에 옮기면 중첩되는 데이터가 많이 생긴다. 하지만 1차원 직선 상에 옮겨진 데이터들은 하나도 중첩되지 않고 육안으로 7개의 점을 확인할 수 있다.이를 정보이론 측면에서 해석해본다면 고차원 데이터를 저차원 데이터로 옮겼음에도 유용한 정보의 유실이 가장 적다고 판단할 수 있다.

 

주성분 분석 알고리즘은 수학적인 방법으로 데이터 정보의 유실이 가장 적은 라인을 찾아낸다. 수학적으로 '데이터의 중첩이 가장 적다'라는 말은 '데이터의 분산이 가장 크다'라는 말과 동일하다.

 

따라서 주성분 분석은 분산이 가장 큰 차원을 선택해 고차원 데이터를 저차원으로 축소한다. 그리고 분산이 가장 큰 차원은 수학적으로 공분산 행렬(covariance matrix)에서 고윳값(eigen value)이 가장 큰 고유벡터(eigen vector)이다. 여기서 공분산 행렬이란 간단하게 말해서 x축과 y축으로 늘렸을때 얼마나 잘 늘어났는지를 나타내는 행렬이라고 생각하면 될 것 같다.

728x90