[AI] 주성분 분석(PCA)

PSLeon ㅣ 2023. 10. 6. 09:31

반응형

주성분 분석(PCA)

주성분 분석은 데이터에 있는 분산이 큰 방향을 찾는 것이다. 여기서 분산은 데이터의 분포 정도인데 분산이 큰 방향이란 데이터를 가장 잘 표현하는 벡터로 생각할 수 있다.

https://genomicsclass.github.io/book/pages/PCA.html

예를 들어, 위와 같 산점도 플롯이 있다고 가정해보자. 위의 경우 가장 분산이 큰 방향, 즉 데이터의 분포를 가장 잘 표현하는 방향이 어디일까?

 

https://genomicsclass.github.io/book/pages/PCA.html

위에 표현된 y=x꼴로 그어진 직선과 같이 길게 늘어진 대각선 방향이 분산이 가장 크다고 알 수 있다.

여기서 직선(화살표라 가정)의 방향은 왼쪽 아래를 향할 수도 있고 오른쪽 위를 향할 수도 있으므로 중요하지 않다.

핵심은 위와 같이 분산이 큰 방향을 찾는 것이다.

 

앞에서 찾은 직선이 만약 원점(0, 0)에서 출발한다면 두 원소로 이루어진 벡터로 쓸 수 있다. 예를 들면 (2, 2)와 같이 나타낼 수 있다. 이러한 벡터를 주성분(principal component)이라 한다. 즉, 주성분 벡터는 원본 데이터에 있는 어떤 방향이므로 주성분 벡터의 원소 개수와 원본 데이터 세트에 있는 특성의 개수는 동일하다. 하지만 원본 데이터는 PCA를 사용해 차원을 줄일 수 있다. 위의 그림을 예로 들면, 직선 밖에 있는 각각의 점들을 직선으로 투영함으로써 1차원 데이터를 만들 수 있다.

 

아래 내용은 꼭 기억하자.

주성분은 원본 차원과 같고 주성분으로 바꾼 데이터는 차원이 줄어든다.

또한 주성분은 데이터를 가장 잘 표현하는 방향(분산이 가장 큰 방향)이기 때문에 주성분에 기존의 데이터들을 투영하여 바꾼 데이터는 원본이 갖고 있는 특성을 가장 잘 나타내고 있을 것이다. 그리고 PCA로 차원을 축소한 것은 원래의 차원으로 복구할 수도 있다.