본문 바로가기
데이터 분석

PCA(주성분 분석): 로딩 벡터로 주성분을 해석하라

by 데이널 2024. 2. 6.

실제 현업에서 주성분 분석을 정말 많이 쓰는 알고리즘 중에 하나입니다. 그런데 주성분 분석(PCA)을 하고 나서 내가 주성분을 얼마나 잘 만들었는지에 대한 검토는 잘 이루어지지 않죠. 주성분을 해석하기 위한 방법으로 로딩 벡터를 보는 방법이 있습니다. 이 글을 통해 PCA를 좀 더 잘 해설할 수 있는 방법을 소개할까 합니다. 
 

 

로딩 벡타란?

로딩 벡터는 주성분을 구성하기 위해 원래 변수(feature)에 할당된 가중치를 나타냅니다. 이러한 로딩 벡터는 각 원래 feature가 변수들의 선형 조합인 주성분(PC)에 어떻게 기여하는지에 대한 정보를 제공합니다. 그러면 주요 개념을 확인해 보겠습니다.

주성분(Principal Components , PC)

주성분은 데이터의 최대 분산을 포착하는 원래 특성(feature)의 선형 조합입니다. 첫 번째 주성분(PC1)은 가장 많은 분산을 설명하고, 두 번째 주성분(PC2, 첫 번째 주성분과 직교)은 두 번째로 가장 많은 분산을 설명하는 식입니다. PC는 캡처하는 분산의 양에 따라 정렬됩니다. 이 내용은 차원 축소의 주성분 분석(PCA) 부분에 자세히 설명했습니다. 

로딩 벡터(Loading Vectors)

로딩 벡터는 주성분을 구성할 때 각 원래 특성(feature)에 할당된 가중치(또는 변수기여도)입니다. 이러한 벡터는 주성분(PC) 생성에 대한 각 기능의 기여도를 나타냅니다.
 

로딩 벡터
로딩 벡터

수학적 표현과 해석

 

수학적인 부분은 너무 어렵게 설명하기 않고 최소한의 수식으로 이해가 가능하게 설명하려고 합니다. 쉽게 이해해야 실제 활용할 수 있다고 생각하기 때문입니다.
 
m개의 관측값과 n개의 feature가 있는 데이터세트가 있다고 가정하겠습니다. i번째 주성분에 대한 로딩 벡터는 $ w_{i}=(w_{i1},w_{i2},...,w_{in}) $ 으로 표시되는 길이 n의 벡터입니다. 이러한 로딩 벡터는 PCA 프로세스 중에 결정됩니다.
 
로딩 벡터는 주성분의 맥락에서 각 feature의 중요성을 해석하는 데 도움이 됩니다. 로딩 벡터의 절대값이 클수록 해당 기능이 각 주성분에 더 크게 기여한다는 것을 의미합니다. 
 

주성분 선택

기계 학습의 문제와 유지하려는 분산의 양에 따라 주성분의 하위 집합을 선택할 수 있습니다. 해당 로딩 벡터는 선택한 구성 요소를 캡처하는 데 가장 큰 영향을 미치는 feature를 나타냅니다.
 
예를 들어, 변수 X, Y, Z가 있는 데이터세트를 생각해 보겠습니다. 첫 번째 주성분에 대한 로딩 벡터는 $ w_{1}=(0.5,0.7,−0.3) $ 일 수 있습니다. 이는 첫 번째 주성분이 $ 0.5X+0.7Y−0.3Z $ 의 조합임을 의미합니다. 계수의 부호와 크기는 각 변수가 기여하는 방향과 강도를 나타냅니다.
 
여기서 로딩 벡터는 합이 1이 되도록 제한하는데요. 그렇지 않으면 로딩 feature의 절대값이 임의의 큰 값이 되어 분산이 커질 수 있기 때문입니다.
 

마무리

요약하면, PCA에 로딩 벡터를 이용하면 원래 feature의 주성분에 어떻게 기여하는지를 해석할 수 있습니다. 이 방법이 뭐가 중요하냐고 생각할 수 있는데요. 우리가 분산비율을 통해 만든 주성분이 어떤 경우에는 특정 feature가 너무 많은 가중치를 차지하고 있는 경우도 있습니다. 그렇다면 Y 값을 결정하는 해당 feature의 의존도가 너무 높다는 이야기가 됩니다. 이러한 경우에 해당 feature의 전처리는 잘 못된것이 없는지 검증해 보는 작업이 필요합니다.