콘텐츠로 이동

샘플 거리와 차원축소

샘플 거리는 숫자 특징이 여러 개인 두 관측값이 얼마나 비슷한지 하나의 숫자로 요약한 값입니다. 차원축소는 특징이 너무 많아 직접 그릴 수 없는 관측값을 두세 개의 새 좌표로 바꿔 전체 구조를 살펴보는 방법입니다.

PCA(principal component analysis, 주성분 분석)와 UMAP(uniform manifold approximation and projection)은 대표적인 차원축소 방법입니다. 둘 다 저차원 그림을 만들지만 보존하려는 관계가 다르므로 같은 지도로 해석하지 않습니다.

행 하나는 특징이 여러 개인 벡터다

섹션 제목: “행 하나는 특징이 여러 개인 벡터다”

서버 실행 기록이 다음과 같은 DataFrame으로 쌓였다고 해봅시다.

runlatency_mscpu_pctmemory_mberror_rate
run_A120458200.01
run_B125478000.01
run_C850921,9000.18

행 하나는 네 숫자를 가진 벡터입니다. run_Arun_B는 대부분의 특징이 비슷해 가깝고, run_C는 여러 특징이 달라 멀리 놓일 가능성이 큽니다.

특징이 4개면 4차원, 10,000개면 10,000차원입니다. 화면에는 두 축이나 세 축만 그릴 수 있지만 고차원 공간에서 거리를 계산하고 구조를 요약할 수는 있습니다.

거리 공식보다 먼저 척도를 확인한다

섹션 제목: “거리 공식보다 먼저 척도를 확인한다”

Euclidean distance는 대응하는 특징의 차이를 제곱해 더합니다. 이때 단위와 숫자 범위가 큰 특징이 거리를 지배할 수 있습니다.

위 표에서 memory_mb는 수백 단위이고 error_rate는 0과 1 사이입니다. 그대로 계산하면 memory의 차이가 error rate보다 훨씬 큰 비중을 갖습니다. 이것이 의도한 중요도인지, 단위 차이 때문에 생긴 현상인지 먼저 판단해야 합니다.

해결 방법은 질문에 따라 다릅니다.

  • 단위만 다르고 비중은 같아야 한다면 표준화를 고려합니다.
  • 큰 값의 간격이 지나치게 벌어지면 로그나 VST 같은 변환을 고려합니다.
  • 거의 변하지 않는 특징이나 잡음 특징이 많으면 필요한 특징만 선택합니다.
  • 방향이나 비율이 중요하다면 Euclidean distance 대신 cosine distance 같은 다른 척도를 검토합니다.

전처리와 거리 공식을 바꾸면 “가깝다”의 의미도 바뀝니다. 거리값만 보고 분석 목적에 맞는 척도였다고 가정하지 않습니다.

PCA는 전체 변동이 큰 방향을 보존한다

섹션 제목: “PCA는 전체 변동이 큰 방향을 보존한다”

PCA는 관측값들이 가장 크게 퍼지는 선형 방향을 PC1로 잡고, 그다음으로 크게 퍼지는 직각 방향을 PC2로 잡습니다. 각 축이 원래 데이터의 전체 변동을 몇 퍼센트 설명하는지 계산할 수 있습니다.

PCA에서 가까운 점은 표시한 주성분 축에서 비슷합니다. PC1과 PC2가 전체 변동의 일부만 담았다면 화면에서 겹치는 두 점도 PC3 이후 축에서는 다를 수 있습니다.

UMAP은 가까운 이웃 관계를 보존한다

섹션 제목: “UMAP은 가까운 이웃 관계를 보존한다”

UMAP은 고차원에서 가까운 이웃들이 저차원에서도 이웃이 되도록 배치하는 비선형 방법입니다. 휘어진 구조나 국소적인 군집이 PCA보다 선명하게 보일 수 있습니다.

UMAP 그림의 전체 방향, 군집 사이의 빈 공간과 절대 거리는 직접적인 단위를 갖지 않습니다. 이웃 수, 최소 거리, 난수와 전처리를 바꾸면 지도가 회전하거나 군집 간 간격이 달라질 수 있습니다.

지도에서 안전하게 말할 수 있는 것

섹션 제목: “지도에서 안전하게 말할 수 있는 것”
  • 가까운 점은 사용한 특징, 전처리와 거리 기준에서 비슷합니다.
  • 멀리 떨어진 점은 전체 패턴이 다르지만 그 원인은 별도로 조사해야 합니다.
  • 색으로 표시한 그룹이 갈라져도 차원축소가 원인을 증명한 것은 아닙니다.
  • 이상치처럼 보이는 점은 오류일 수도 있고 실제로 드문 관측값일 수도 있습니다.
  • 전처리와 설정이 달라진 두 지도는 좌표값을 직접 비교하지 않습니다.

발현 행렬에서는 조직(tissue) 샘플 하나가 행이고 유전자별 발현값이 열입니다. 샘플 사이의 거리는 사용한 유전자와 값의 변환 방식에 따라 달라집니다. 공개 데이터와 새 데이터가 따로 모이면 질환 차이보다 실험 장비나 처리 시점 같은 batch 효과를 먼저 확인해야 합니다.

PCA와 UMAP은 정답 라벨 없이 구조를 찾는 비지도 학습 도구로 분류됩니다. 예측 모델의 정확도를 계산하는 단계가 아니라, 데이터 구조와 품질 문제를 탐색하고 후속 분석 질문을 만드는 단계에 가깝습니다.