비지도학습 – 3. 주성분 분석 PCA



주성분 분석
비지도학습 알고리즘 3

 

주성분 분석이란?

주성분 분석(Principal Component Analysis, PCA)은 다변량 데이터의 차원을 축소하고, 데이터의 주요한 변동성을 설명하는 데 사용되는 통계적인 방법입니다.

다차원 데이터의 변수들 사이의 상관관계를 고려하여 데이터를 새로운 변수들의 집합으로 변환하게 됩니다. 이때, 변환된 변수들은 원본 데이터의 주요한 변동성을 설명하는 주성분들입니다.

주성분은 데이터의 분산을 최대화하는 방향으로 정의되며, 상호 독립적인 선형 조합으로 표현됩니다.

알고리즘

PCA의 핵심은 주성분들을 추출하는 과정입니다. 주성분은 원본 데이터의 변수들을 선형 결합하여 얻어지며, 가장 큰 분산을 가지는 첫 번째 주성분부터 차례대로 추출됩니다.

각 주성분은 이전 주성분과 직교하는 방향으로 정의되며, 추출된 주성분들은 원본 데이터의 분산을 최대한 보존하도록 구성됩니다.

주성분 분석 예시 (출처: 네이버 지식백과)

PCA 알고리즘을 그림으로 살펴봅시다. 여기서 x는 측정된 변수의 개수이고, 파란색 점은 n차원에서의 샘플을 의미한다. w1은 첫 주성분 분석 로딩이고, 연두색 선은 본래 차원 샘플이 주성분 공간으로 투사가 되는 변환을 나타냅니다. 이와 같이 PCA를 통해 차원 축소를 할 수 있습니다. 이젠 주성분 분석 수행 방법에 대해 설명해보겠습니다.

 

알고리즘 수행 과정

1. 데이터를 준비합니다.

이 때, 데이터는 일반적으로 수치형 변수로 이루어진 행렬 형태여야 합니다. 주성분 분석은 변수 간의 스케일 차이가 크면 부정확한 결과를 초래할 수 있습니다. 따라서, 데이터를 표준화하여 변수의 스케일을 맞추는 것이 일반적입니다. 이 과정에서 결측치 처리 및 표준화의 과정을 거쳐 데이터 전처리도 같이 진행해줍니다.

2. 표준화된 데이터를 사용하여 변수 간의 공분산 행렬을 계산합니다.

공분산 행렬은 변수들 간의 상관 관계를 나타내는 중요한 정보를 제공합니다. 이후, 공분산 행렬을 고유값 분해하여 고유값과 고유벡터를 얻습니다.

고유값은 주성분의 중요도를 나타내며, 고유벡터는 주성분의 방향을 나타냅니다. (고유값 분해에 대해서는 이후 포스팅에서 더 자세히 다뤄보도록 하겠습니다.)

3. 고유값을 기준으로 주성분을 선택합니다.

고유값이 큰 순서대로 주성분을 선택하면, 데이터의 변동을 가장 잘 설명하는 주성분들을 얻을 수 있습니다.

4. 선택한 주성분으로 데이터를 변환합니다.

각 데이터 포인트를 주성분의 방향으로 투영하여 새로운 차원으로 변환하면 끝입니다.

분석 결과에 대한 해석 방법도 존재하는데요, 아래의 3가지 방법으로 해석할 수 있습니다.

  • 주성분 로딩 값: 변수들 간의 관계를 파악하기 위해 주성분 로딩 값을 확인합니다. 로딩 값이 큰 변수는 해당 주성분과 강한 관계가 있음을 의미합니다.
  • 분산 비율: 주성분이 설명하는 분산의 비율을 확인하여 변수들의 중요도를 판단합니다.
  • 공간 변환: 주성분 분석은 공간 변환을 통해 데이터를 새로운 축으로 투영합니다. 이를 통해 데이터의 패턴을 시각화하거나 차원 축소를 수행할 수 있습니다.

 

알고리즘 특징

마지막으로 주성분 분석의 특징에 대해서 알아볼까요? 다변량 데이터의 구조를 파악할 수 있습니다. 또한, 변수 선택과 데이터 축소에 효과적입니다. 데이터의 패턴을 시각화할 수 있다는 장점이 있습니다. 반면 단점으로는 PCA 결과를 해석하기 위해서는 전문적인 지식과 경험이 필요합니다. 또한, PCA는 데이터의 일부 정보를 손실시킬 수 있습니다.

PCA는 데이터 압축, 차원 축소, 변수 선택, 데이터 시각화 등 다양한 분야에서 활용됩니다. 예를 들어, 다차원 데이터의 시각화를 위해 PCA는 주요한 변동성을 설명하는 주성분들을 선택하여 데이터를 2차원 또는 3차원으로 표현할 수 있습니다. 또한, 고차원 데이터의 변수 선택이나 노이즈 제거를 위해 PCA를 사용할 수 있습니다. PCA는 데이터의 차원 축소와 변동성 설명에 있어 유용한 도구입니다. 데이터의 구조를 파악하고 주요한 패턴과 관련성을 추출하는 데 활용됩니다.

알고리즘의 원리와 사용 사례를 이해하여 다양한 분석 작업에 적용해 볼 수 있을 것입니다.

 

함께 보면 좋은 글들

Leave a Comment