다차원 척도법(MDS, Multidimensional Scaling)
다차원 척도법(MDS, Multidimensional Scaling)은 객체들 간의 '거리'나 '비유사성(Dissimilarity)' 정보를 이용하여, 이 객체들을 2차원 또는 3차원 같은 낮은 차원의 공간 상에 점으로 시각화하는 통계 기법입니다.
PCA vs MDS
PCA는 데이터 백터가 존재하고 분산을 최대화 하는 방향으로 정보 손실을 최소화 하는 기법
MDS는 데이터 백터를 전혀 알지 못하고 데이터 간의 거리 정보만 알 때 거리를 잘 보존할 수 잇는 좌표를 구할 수 있는 기법
📐 Classical MDS 계산 과정 (Step-by-Step)
MDS(다차원 척도법)가 거리 행렬을 좌표로 변환하는 수학적 과정을 단계별로 정리한 내용입니다.
Step 1: 거리 행렬 (D) 및 제곱 행렬 (D(2)) 만들기
가장 먼저, 객체들 간의 거리가 담긴 행렬 D를 준비합니다. 이후 수학적 계산(제2 코사인 법칙 응용)을 위해 모든 값을 제곱합니다.
- 예시 상황: 3개의 점 A, B, C가 직각 이등변 삼각형 형태를 이룸
- A-B 거리: 3
- A-C 거리: 4
- B-C 거리: 5
D=⎝⎜⎛034305450⎠⎟⎞⇒D(2)=⎝⎜⎛0916902516250⎠⎟⎞
Step 2: 이중 중심화 (Double Centering) ★ 핵심 단계
이 단계가 MDS의 마법이 일어나는 곳입니다. 우리가 가진 건 '거리'뿐이고 '좌표'가 없는 상황에서, 데이터의 무게 중심을 원점(0,0)으로 강제로 맞추는 작업을 수행합니다.
이를 위해 B 행렬(내적 행렬)을 계산합니다.
1. 행렬 공식
B=−21JD(2)J
(여기서 J는 중심화 행렬(Centering Matrix)로 J=I−n111T 입니다.)
2. 실제 계산 로직
수학 공식이 복잡해 보이지만, 실제로는 각 원소에서 "행 평균"과 "열 평균"을 빼고 "전체 평균"을 더하는 것입니다.
bij=−21(dij2−μi⋅−μ⋅j+μ⋅⋅)
- dij2: 제곱 거리 행렬의 값
- μi⋅: 해당 행의 평균
- μ⋅j: 해당 열의 평균
- μ⋅⋅: 행렬 전체의 평균

💡 이 과정의 의미
거리 정보를 이용해 원점을 중심으로 각 점이 뻗어나가는 벡터의 내적(Inner Product) 값을 역으로 구해내는 것입니다.
Step 3: 고유값 분해 (Eigen-decomposition)
이제 구해진 B 행렬을 고유값 분해합니다. 이 과정은 데이터가 퍼져 있는 주된 방향(축)을 찾는 것으로, PCA(주성분 분석)와 원리가 같습니다.
B=VΛVT
- Λ (람다): 고유값(Eigenvalues) 대각 행렬. 데이터의 분산 크기를 나타냅니다. (큰 순서대로 정렬)
- V: 고유벡터(Eigenvectors) 행렬. 새로운 좌표축의 방향을 나타냅니다.
만약 데이터를 2차원으로 줄이고 싶다면, 가장 큰 고유값 2개(λ1,λ2)와 그에 대응하는 고유벡터(v1,v2)만 선택합니다.
Step 4: 최종 좌표 (X) 계산
마지막으로 실제 좌표를 구합니다. 좌표 행렬 X는 고유벡터에 고유값의 제곱근을 곱하여 계산합니다.
X=VΛ1/2
쉽게 풀어서 설명하면 다음과 같습니다:
- X축 좌표 = (첫 번째 고유벡터) ×첫 번째 고유값
- Y축 좌표 = (두 번째 고유벡터) ×두 번째 고유값
이렇게 계산되어 나온 X 행렬의 각 행이 바로 점 A, B, C의 최종 (x, y) 좌표가 됩니다.