Broccoli's House
#3-(2) 비지도 변환 : 주성분 분석(PCA) 본문
※ 이 글의 내용은 O'REILLY의 <파이썬 라이브러리를 활용한 머신러닝> 책을 기반으로 한다.
비지도 변환 : PCA(주성분 분석)
- 비지도 변환
- 주성분 분석
- 원본 데이터에서 가장 먼저 분산이 가장 큰 방향의 성분 1을 찾는다. 그리고 첫 번째 방향과 직각인 방향 중에서 가장 많은 정보를 담고 있는(첫 번째 다음으로 분산이 큰) 방향 성분 2를 찾는다. 주 성분을 축으로하여 변형한 것이 두 번째 그래프이다. PCA에 의해 회전된 두 축은 연관되어 있지 않으므로(직교하기 때문에) 변환된 데이터의 상관관계 행렬은 대각행렬이 된다.
- PCA는 주성분의 일부만을 남기는 차원 축소 용도로 사용할 수 있다. 두 주성분을 축으로 하는 그래프에서 첫 번째 주성분만을 유지하고 두 번째 주성분을 제외한 것이다. 이렇게 하면 2차원 데이터 세트에서 1차원의 데이터 세트로 차원이 감소한다. 단순히 원본 특성이 중의 하나만 남기는 것이 아니라 가장 유용한 방향의 성분(주성분)을 유지한 것이다. (주성분을 축으로하여 정사영시켰다고 생각하는 것이 이해하기 편리하다.)
- 우측은 첫번째 주 성분만 유지한 상태에서 회전을 복구시킨 것이다. 복구시킨 데이터 포인트들은 원래의 특성 공간에 놓여 있지만 첫 번째 주성분의 정보만을 담고 있다. 이러한 변환은 데이터에서 노이즈를 제거하거나 주성분에서 유지되는 정보를 시각화하는 데 종종 사용한다.
- PCA의 단점은 그래프의 두 축을 해석하기가 어렵다는 것이다. 주성분은 원본 데이터에 있는 어떤 방향에 대응하는 여러 특성이 같이 조합된 형태이다. 거의 대부분의 특성이 섞여있기 때문에 축이 가지는 의미를 설명하기가 어렵다.
공분산 행렬
- 공분산 행렬 : 분산-공분산 행렬은 여러 변수와 관련된 분산과 공분산을 포함하는 정방형 행렬이다. 행렬의 대각 원소는 각 변수의 분산을 포함하며, 대각선 이외의 원소는 가능한 모든 변수 쌍 간의 공분산을 포함한다.
- 공분산 행렬이 2차 정방 행렬이라 할 때 (1, 1) 원소는 x의 분산, (1, 2) 및 (2, 1) 원소는 x와 y의 공분산, (2, 2)원소는 y의 분산이다. 위의 그래프를 보면 x의 분산이 y의 분산보다 클 때 그래프는 가로로 길어지는 개형을 보이고, 반대로 y의 분산이 크면 세로로 길어지는 개형을 보인다. 대각 원소를 제외한 x와 y의 공분산이 0일 때는 회전 없이 축과 수직을 이루거나 평행한 개형의 그래프가 그려지고, 값이 있을 때는 축에 대해 각도를 가지는 개형의 그래프가 그려진다. 즉, 공분산 행렬이 그래프의 개형을 나타내는 것이다.
- 공분산 행렬은 데이터의 전체적인 분포를 나타낸다. 이 행렬의 고유 벡터(Eigen Vector)는 데이터 분포의 분산 방향을 나타내고, 고유값(Eigenvalue)은 분산의 크기를 나타낸다. 그렇기 때문에 공분산 행렬의 고유 벡터와 고유값을 찾는 것은 PCA에서 데이터의 주성분을 찾는 것과 동일하다. 왜냐하면 데이터가 어떤 방향으로의 분산이 가장 큰지를 구하는 것과 같기 때문이다.
'공부 > 머신러닝' 카테고리의 다른 글
#3-(5) 군집 알고리즘 : k-평균 군집(k-means) (1) | 2018.02.04 |
---|---|
#3-(3) 비지도 변환 : 비음수 행렬 분해(NMF) (0) | 2018.02.03 |
#3-(1) 비지도 학습 (0) | 2018.02.03 |
#2-(8) 지도학습 알고리즘 : 정리 (0) | 2018.02.03 |
#2-(7) 지도학습 알고리즘 : 서포트 벡터 머신(SVM) (0) | 2018.02.01 |