데이터 과학과 머신러닝, 그리고 딥러닝의 세계를 탐험하다 보면 우리는 필연적으로 수많은 수학적 장벽에 부딪히게 됩니다. 개중에는 단순히 라이브러리를 호출하여 사용하는 것만으로도 충분한 경우도 있지만, 모델의 성능을 극대화하거나 데이터의 본질적인 구조를 파악하기 위해서는 그 이면에 숨겨진 수학적 원리를 반드시 이해해야만 하는 순간이 찾아옵니다. 그중에서도 고유값(Eigenvalue)과 고유벡터(Eigenvector)는 '선형대수학의 꽃'이라 불릴 만큼 중요한 개념이며, 현대 데이터 분석의 필수 과정인 주성분 분석(PCA, Principal Component Analysis)을 지탱하는 핵심 기둥입니다.
많은 입문자가 이 개념을 접할 때 단순히 $Av = \lambda v$라는 수식만을 암기하고 넘어가곤 합니다. 하지만 이 수식이 내포하고 있는 기하학적 의미와 데이터 분석적 가치를 이해하지 못한다면, 고차원 데이터를 다루는 데 있어 중요한 통찰력을 놓치게 됩니다. 이번 포스팅에서는 고유값과 고유벡터가 도대체 무엇인지, 그리고 이것이 어떻게 복잡한 고차원 데이터를 효율적으로 압축하고 핵심 정보를 추출하는 차원 축소의 원리로 작동하는지 아주 깊이 있게 파헤쳐보겠습니다.
1. 선형 변환의 관점에서 본 고유값과 고유벡터
고유값과 고유벡터를 진정으로 이해하기 위해서는 먼저 행렬(Matrix)을 바라보는 시각을 바꿀 필요가 있습니다. 단순히 숫자들이 나열된 사각형 틀이 아니라, 행렬은 공간상의 어떤 점이나 벡터를 다른 위치로 이동시키거나, 회전시키거나, 혹은 크기를 늘리고 줄이는 하나의 '함수' 또는 '선형 변환(Linear Transformation)'으로 이해해야 합니다.
1.1 변하지 않는 '축'을 찾아서
우리가 2차원 평면상의 모든 벡터에 특정 행렬을 곱한다고 상상해 봅시다. 대부분의 벡터는 행렬과 곱해지면서 그 방향이 틀어지고 크기도 제각각으로 변하게 됩니다. 마치 공간 전체가 뒤틀리는 것과 같습니다. 하지만, 아주 특별한 몇몇 벡터들은 이 변환의 소용돌이 속에서도 자신의 방향을 꿋꿋이 유지합니다. 비록 그 길이는 늘어나거나 줄어들 수 있어도, 가리키는 방향만큼은 변하지 않는 벡터들이 존재합니다.
바로 이들이 고유벡터(Eigenvector)입니다. 그리고 변환 과정에서 이 고유벡터의 길이가 변한 배율(Scale factor)을 고유값(Eigenvalue)이라고 부릅니다. 이를 수식으로 표현하면 그 유명한 정의가 나옵니다.
$A \mathbf{v} = \lambda \mathbf{v}$
여기서 $A$는 변환을 나타내는 정방행렬, $\mathbf{v}$는 고유벡터, 그리고 $\lambda$(람다)는 고유값을 의미합니다. 이 식을 해석하면 "행렬 $A$를 벡터 $\mathbf{v}$에 가했더니(선형 변환), 그 결과가 원래 벡터 $\mathbf{v}$에 단순히 상수 $\lambda$를 곱한 것(스칼라배)과 완전히 동일하다"는 뜻이 됩니다. 즉, 선형 변환을 거쳐도 방향이 유지되는 '축(Axis)'이 존재하며, 이 축이 바로 해당 행렬이 가진 고유한 특성을 대변하는 뼈대가 된다는 것입니다.
1.2 기하학적 의미와 데이터 분석의 연결
기하학적으로 고유벡터는 해당 선형 변환의 '주축(Principal Axis)' 역할을 수행합니다. 물리학적으로 비유하자면, 회전하는 물체의 회전축이나 힘이 가해질 때 비틀리지 않고 늘어나기만 하는 방향과도 같습니다. 데이터 분석의 관점에서 이것이 중요한 이유는, 데이터가 분포된 형태를 가장 잘 설명하는 방향을 이 고유벡터가 가리키고 있기 때문입니다. 데이터가 흩뿌려진 구름과 같다면, 그 구름의 가장 긴 지름과 짧은 지름을 찾아내는 나침반이 바로 고유벡터인 셈입니다.
2. 데이터의 분포를 담아내는 그릇: 공분산 행렬
수학적 정의를 넘어 실제 데이터 분석의 현장으로 들어가 보겠습니다. PCA를 수행하기 위해서는 먼저 데이터가 공간상에 어떻게 퍼져 있는지, 즉 변수들 간의 관계가 어떠한지를 수치적으로 파악해야 합니다. 이를 위해 사용되는 도구가 바로 공분산 행렬(Covariance Matrix)입니다.
2.1 분산과 공분산, 그리고 정보량
데이터 분석에서 '분산(Variance)'은 곧 '정보(Information)'로 해석됩니다. 모든 데이터가 한 점에 모여 있어 분산이 0이라면, 그 데이터는 아무런 정보도 주지 못합니다. 반면, 데이터가 넓게 퍼져 있을수록 우리는 그 안에서 패턴과 차이를 발견할 수 있습니다. 따라서 차원을 축소하더라도 데이터가 가진 '분산'을 최대한 보존하는 것이 핵심 목표가 됩니다.
- 분산(Variance): 하나의 변수가 평균을 중심으로 얼마나 퍼져 있는지를 나타냅니다.
- 공분산(Covariance): 두 변수가 함께 변하는 경향성을 나타냅니다. 예를 들어, 키가 클수록 몸무게도 늘어나는 양의 상관관계가 있다면 공분산은 양수 값을 가집니다.
2.2 대칭 행렬의 마법
데이터의 특성을 담은 공분산 행렬은 수학적으로 매우 중요한 성질을 가집니다. 바로 대각선을 기준으로 대칭인 대칭 행렬(Symmetric Matrix)이라는 점입니다. 선형대수학의 '스펙트럼 정리(Spectral Theorem)'에 따르면, "실수 성분의 대칭 행렬은 항상 서로 직교(Orthogonal)하는 고유벡터를 가지며, 그 고유값은 모두 실수이다"라는 사실이 증명되어 있습니다.
이것은 PCA에서 엄청난 함의를 가집니다. 우리가 데이터의 공분산 행렬을 구하고 그 고유벡터들을 찾아낸다면, 그 벡터들은 서로 90도로 수직을 이루면서 데이터가 퍼져 있는 주요 축들을 완벽하게 독립적으로 설명해 줄 것이기 때문입니다. 이것이 바로 PCA가 찾아낸 주성분들이 서로 상관관계가 없는(Uncorrelated) 이유입니다.
3. 주성분 분석(PCA)의 메커니즘과 차원 축소
PCA는 고차원의 데이터를 정보 손실을 최소화하면서 저차원으로 투영(Projection)하는 기법입니다. 이때 '어디로 투영할 것인가'를 결정하는 결정적인 기준이 바로 앞서 살펴본 고유값과 고유벡터입니다.
3.1 PCA의 핵심 프로세스 5단계
PCA가 작동하는 과정을 단계별로 살펴보면 고유값과 고유벡터의 역할이 명확해집니다.
- 데이터 중심화(Centering): 모든 데이터의 평균을 0으로 맞추어 원점을 기준으로 분포하게 합니다.
- 공분산 행렬 계산: 변수들 간의 상관관계를 파악하여 $n imes n$ 크기의 공분산 행렬을 생성합니다.
- 고유값 분해(Eigendecomposition): 공분산 행렬의 고유값과 고유벡터를 계산합니다. 이때 고유벡터는 새로운 축의 방향을, 고유값은 그 축의 중요도를 의미합니다.
- 주성분 선택: 고유값이 큰 순서대로 고유벡터를 나열합니다. 고유값이 클수록 해당 축 방향으로 데이터의 분산이 크다는 것을 의미합니다.
- 데이터 투영: 상위 $k$개의 고유벡터(주성분)로 형성된 새로운 공간에 데이터를 투영하여 차원을 축소합니다.
3.2 고유값과 고유벡터의 역할 분담
이 과정에서 고유벡터는 데이터가 가장 넓게 퍼져 있는 '방향'을 알려줍니다. 즉, 새로운 좌표계의 $x$축, $y$축, $z$축이 될 후보들입니다. 반면, 고유값은 그 방향으로 데이터가 얼마나 길게 뻗어 있는지, 즉 '분산의 크기'를 알려줍니다.
- 가장 큰 고유값에 대응하는 고유벡터(PC1): 전체 데이터의 분산(정보량)을 가장 많이 설명하는 첫 번째 축입니다. 데이터의 가장 주된 경향성을 나타냅니다.
- 두 번째로 큰 고유값에 대응하는 고유벡터(PC2): PC1과 수직(직교)이면서, 남은 분산을 가장 많이 설명하는 두 번째 축입니다.
3.3 정보의 선택과 집중: 차원 축소의 원리
예를 들어 100차원의 데이터가 있다고 가정해 봅시다. 공분산 행렬을 분해하면 100개의 고유값과 고유벡터가 나옵니다. 이때, 상위 3개의 고유값의 합이 전체 고유값 합의 95%를 차지한다고 해봅시다. 이는 단 3개의 축(주성분)만으로도 전체 데이터가 가진 정보(분산)의 95%를 설명할 수 있다는 뜻입니다.
나머지 97개의 축이 설명하는 정보량은 5%에 불과하며, 이는 데이터의 본질적인 구조라기보다는 단순한 노이즈(Noise)일 가능성이 큽니다. 따라서 우리는 과감하게 하위 97개의 차원을 버리고, 상위 3개의 고유벡터가 만드는 3차원 공간으로 데이터를 투영시킵니다. 이것이 바로 PCA를 이용한 차원 축소이며, 고유값이 작은 차원을 제거함으로써 데이터의 복잡성을 획기적으로 줄이고 모델의 효율성을 높이는 원리입니다.
4. 왜 고유값과 고유벡터인가? PCA의 강력한 이점
고유값과 고유벡터를 활용한 PCA 변환 과정은 단순한 데이터 압축 그 이상의 가치를 지닙니다. 데이터 사이언티스트들이 PCA를 사랑하는 이유는 다음과 같습니다.
4.1 차원의 저주(Curse of Dimensionality) 해결
변수(차원)가 너무 많으면 데이터 공간이 기하급수적으로 넓어지고 희소해져서, 머신러닝 모델이 패턴을 학습하기 어려워지고 과적합(Overfitting)이 발생하기 쉽습니다. PCA는 가장 중요한 정보(큰 고유값)를 가진 축만 남기고 불필요한 변수들을 제거함으로써 이러한 차원의 저주 문제를 효과적으로 해결하고 모델의 일반화 성능을 높여줍니다.
4.2 노이즈 제거 (Noise Reduction)
현실 세계의 데이터에는 항상 측정 오차나 불필요한 변동성인 노이즈가 포함되어 있습니다. 일반적으로 신호(Signal)는 큰 분산을 가지고, 노이즈는 작은 분산을 가집니다. 고유값이 작은 주성분들을 제거한다는 것은, 곧 데이터 내의 자잘한 노이즈를 걸러내고 본질적인 패턴(Signal)만 남긴다는 의미와 일맥상통합니다. 이미지 처리 분야에서 PCA를 이용해 이미지를 압축하거나 노이즈를 제거하는 것도 바로 이 원리를 이용한 것입니다.
4.3 직관적인 시각화의 가능성
인간은 3차원 이상의 공간을 인지할 수 없습니다. 수십, 수백 개의 변수를 가진 고차원 데이터를 2차원이나 3차원의 주성분으로 축소하면, 산점도(Scatter Plot) 등을 통해 데이터의 군집(Cluster)이나 패턴을 눈으로 직접 확인할 수 있습니다. 이때 X축과 Y축은 각각 고유값이 가장 큰 첫 번째와 두 번째 고유벡터가 됩니다. 이는 탐색적 데이터 분석(EDA) 단계에서 매우 강력한 도구가 됩니다.
5. 결론: 데이터의 뼈대를 찾아내는 수학적 통찰
지금까지 고유값과 고유벡터의 기하학적 의미와 이를 활용한 주성분 분석(PCA)의 작동 원리에 대해 깊이 있게 살펴보았습니다. 요약하자면, 고유벡터는 데이터가 뻗어 나가는 '방향'을 제시하고, 고유값은 그 방향의 '중요도(분산의 크기)'를 알려주는 지표입니다. PCA는 이 두 가지 핵심 요소를 활용하여 복잡한 고차원의 데이터 구름 속에서 가장 정보량이 많은 핵심 축을 찾아내고, 이를 기준으로 데이터를 재구성하는 우아하고 강력한 알고리즘입니다.
단순히 sklearn.decomposition.PCA를 임포트하여 사용하는 것을 넘어, 그 내부에서 고유값과 고유벡터가 어떻게 데이터의 뼈대를 찾아내는지 이해한다면 여러분은 데이터 사이언티스트로서 한 단계 더 도약할 수 있을 것입니다. 데이터 분석은 결국 수많은 숫자 속에 숨겨진 의미 있는 구조를 찾아내는 과정이며, 선형대수학의 고유값과 고유벡터는 그 구조를 비추는 가장 밝은 등대이기 때문입니다. 앞으로 데이터를 마주할 때, 그 안에 숨겨진 고유벡터의 화살표를 상상해 보시길 바랍니다.