본문 바로가기
DataScience/MachineLearning

[차원축소] PCA의 직관적 의미

by mkk4726 2023. 8. 4.

PCA를 이해하기 위해서는 다음과 같은 인식(?)이 필요합니다.

 

그림1. PCA의 목표

분산이 곧 정보다. 따라서 분산을 유지하는게 중요하다. 

 

이는 꽤나 직관적인 이야기입니다.

그림2. PCA의 기본 개념

왼쪽에 있는 데이터가 오른쪽처럼 변환된다면 아무런 정보도 남지 않게 됩니다.

"분산"이란 데이터가 퍼져있는 정도를 의미하며, 그 자체로 정보를 나타내게 됩니다.

 

이런 데이터의 분산을 의미하는게 "공분산 행렬"입니다.

공분산 행렬은 행렬이 가지는 본질적인 기능, "선형변환"의 역할을 통해 데이터를 표현합니다.

그림3. 공분산 행렬

왼쪽의 기저벡터는 공분산 행렬이 곱해져 오른쪽과 같이 변환됩니다.

 

이로부터 분산을 최대한 유지하면서 차원을 축소하기 위한 아이디어가 추출됩니다.

 

공분산 행렬의 고유벡터대로 축소하자

 

공분산 행렬은 행렬의 정보인 "분산"을 반영하는 행렬이고, 공분산 행렬의 방향대로 축을 축소한다면 원래 분산을 최대한 반영할 수 있을 것입니다.

 

여기서 "고유벡터"(Eigen vector) 란 행렬분해를 통해 얻어지는 벡터로, 행렬에 의해 선형변환되어도 방향이 같은 벡터를 의미합니다.

그림4. 고유벡터의 직관적 의미

그리고 이때 얻어지는 고유값(Eigen value)은 고유벡터의 크기를 의미하며, 값이 클수록 원래 행렬의 방향을 가장 크게 가지는 벡터임을 의미합니다.

 

이렇게 얻어진 벡터로 차원을 축소할 수 있습니다.

고유벡터의 개수는 당연히 원래 데이터의 차원 수만큼 나올 것이며, 고유값을 기준으로 몇 개를 사용할지 정할 수 있습니다.

그림5. 차원축소 결과

 

이를 수식으로 풀이하면 다음과 같습니다.

 

 

 


Reference

패스트캠퍼스, 초격차 패키지 : 50개 프로젝트로 완벽하게 끝내는 머신러닝

김성범 교수님 유튜브 강의 : https://www.youtube.com/watch?v=FhQm2Tc8Kic

댓글