PCA를 이해하기 위해서는 다음과 같은 인식(?)이 필요합니다.
분산이 곧 정보다. 따라서 분산을 유지하는게 중요하다.
이는 꽤나 직관적인 이야기입니다.
왼쪽에 있는 데이터가 오른쪽처럼 변환된다면 아무런 정보도 남지 않게 됩니다.
"분산"이란 데이터가 퍼져있는 정도를 의미하며, 그 자체로 정보를 나타내게 됩니다.
이런 데이터의 분산을 의미하는게 "공분산 행렬"입니다.
공분산 행렬은 행렬이 가지는 본질적인 기능, "선형변환"의 역할을 통해 데이터를 표현합니다.
왼쪽의 기저벡터는 공분산 행렬이 곱해져 오른쪽과 같이 변환됩니다.
이로부터 분산을 최대한 유지하면서 차원을 축소하기 위한 아이디어가 추출됩니다.
공분산 행렬의 고유벡터대로 축소하자
공분산 행렬은 행렬의 정보인 "분산"을 반영하는 행렬이고, 공분산 행렬의 방향대로 축을 축소한다면 원래 분산을 최대한 반영할 수 있을 것입니다.
여기서 "고유벡터"(Eigen vector) 란 행렬분해를 통해 얻어지는 벡터로, 행렬에 의해 선형변환되어도 방향이 같은 벡터를 의미합니다.
그리고 이때 얻어지는 고유값(Eigen value)은 고유벡터의 크기를 의미하며, 값이 클수록 원래 행렬의 방향을 가장 크게 가지는 벡터임을 의미합니다.
이렇게 얻어진 벡터로 차원을 축소할 수 있습니다.
고유벡터의 개수는 당연히 원래 데이터의 차원 수만큼 나올 것이며, 고유값을 기준으로 몇 개를 사용할지 정할 수 있습니다.
이를 수식으로 풀이하면 다음과 같습니다.
Reference
패스트캠퍼스, 초격차 패키지 : 50개 프로젝트로 완벽하게 끝내는 머신러닝
김성범 교수님 유튜브 강의 : https://www.youtube.com/watch?v=FhQm2Tc8Kic
'DataScience > MachineLearning' 카테고리의 다른 글
[Clustering] DBSCAN vs HDBSCAN (0) | 2023.08.02 |
---|---|
[Clustering] Spectral Clustering의 직관적 의미 (0) | 2023.08.01 |
[eXplainable Method] SHAP(1) 기본개념 (0) | 2023.07.31 |
[eXplainable Method] LIME (0) | 2023.07.30 |
[eXplainable Method] 필요한 이유, Local vs Global Feature Importance Score (0) | 2023.07.30 |
댓글