[Weekly] 차원축소와 PCA

Alicia Jung·2024년 8월 13일

Weekly

목록 보기
9/14

[Weekly 질문]
Q1) 데이터 간의 유사도를 계산할 때, feature의 수가 많다면(예: 100개 이상), 이러한 high-dimensional clustering 문제를 해결하기 위한 방법들을 설명해 주세요.

Q2) 고유값(eigenvalue)과 고유벡터(eigenvector)에 대해 설명해 주세요. 이들이 데이터 분석에서 왜 중요한지 구체적인 예를 들어 설명해 주세요.

오늘은 이 두 가지 질문을 차원축소와 PCA라는 분석 방법을 중심으로 설명해보려고 한다.

데이터의 차원과 차원의 저주

데이터에서 차원은 변수를 의미한다.

그래서 feature가 많다, high dimensional하다는 의미는 데이터에 포함된 변수가 많다는 뜻으로 바꾸어 말할 수 있다. 데이터에 변수가 많다면 정보가 많은 것이니 좋은 게 아닐까?

데이터에 차원이 많아질수록 데이터를 볼 수 있는 정보가 많아지는 것도 맞지만 분석하기가 어려워지는 역설이 발생한다. 차원이 많아지면 데이터를 표현하는 축이 많아진다는 의미이고 1차원,2차원,3차원, ... n차원으로 데이터를 표현하게 된다.

그 과정에서 데이터와 데이터 간의 거리는 점점 더 멀어지는데 그렇게 되면 데이터의 연관성을 찾기 어려워지기 때문에 (특히 거리기반 클러스터링으로는 더욱더) 데이터를 분석하는 데에 어려움이 생긴다.

이를 차원의 저주라고 부른다.

해결책: 차원축소

차원의 저주를 해결하기 위해서 차원축소라는 방법을 사용한다.
차원축소는 말그래도 차원을 축소하는 것이다. 고차원의 데이터를 저차원으로 축소하여 분석을 용이하게 만드는 것이다.

이 포스팅에서는 차원축소의 일환으로 PCA를 다뤄보려고 한다.

PCA(Principal Component Analysis)

PCA
차원들의 특성을 가장 잘 설명해주는 주성분(Principal Component)를 이용하여 차원을 축소하는 방법

PCA에서는 주성분을 찾는 방법은 데이터의 분산을 가장 잘 반영하는 축을 새로 생성하는 것이다.

데이터의 흩어짐 정도(분산)는 정보값이다.
예컨대 300명의 학생의 신발 사이즈를 모아둔 데이터 값이 있다고 하자.

내가 이 데이터를 활용하는 입장이라면 이 데이터에 대해서 가장 많은/적은 사이즈 혹은 대체로 어느정도의 신발 사이즈인지 등의 '분포'를 알고 싶을 것이다. 이처럼 분산은 데이터가 어떤식으로 분포되어 있는지를 보여주는 정보값이기 때문에 이를 가장 잘 반영하는 값을 주성분으로 뽑아 사용하는 것이다.

고유값과 고유 벡터

PCA는 분산은 최대한 담아내면서 차원을 축소하기 위해 고유값과 고유 벡터를 찾아내는 작업이다.

고유 벡터: 고유값의 방향
고유값: 스칼라 값

고유값을 통해서 각 주성분의 분산 설명력을 계산할 수 있기 때문에. 고유 벡터 같은 경우에도 변환된 주성분의 축의 방향을 나타낸다.

참고문헌

벡터 https://wikidocs.net/214400
고유값과 고유 벡터 https://bigdatajessie.tistory.com/70

profile
데이터를 잘 써먹기 위해 배우는 데이터 분석가입니다. 최근 티스토리 블로그(https://alicia03.tistory.com/)에서 주로 활동하고 있습니다.

0개의 댓글