PCA (Principal Component Analysis) / 주성분 분석
지난 포스팅에서 차원을 축소하기 위한 방법으로 1) 변수선택 (Feature Selection) 과 2) 변수 추출 (Feature Extraction) 이렇게 2가지를 이야기 했었는데, 오늘은 그 중 변수 추출의 한 기법인 PCA, 주성분 분석에 대하여 포스팅 해보려고 한다.
-
(1) 주성분 분석 PCA란?
(2) 주성분을 추출하는 방법
(3) 몇 번째 주성분까지 필요할까? - Scree Plot
(4) 주성분 분석 PCA의 사용처
(5) R 코드 예제
-
(1) 주성분 분석 PCA란?
주성분 분석은 말 그대로 여러 변수가 있는 데이터 차원에서 가장 주요한 성분을 순서대로 추출하는 기법을 말한다. 여러 변수의 값을 합쳐서 그 보다 적은 수의 주요 성분을 새로운 변수로 하여 데이터를 표현하기 때문에 차원을 축소할 때 사용할 수 있는 기법이다.
(2) 주성분을 추출하는 방법
그럼 어떤 기준으로 가장 주요한 성분인지를 판단할까? 쉽게 2개의 변수가 있는 2차원 데이터에서 주성분 분석을 한다고 생각해보자.
위 그래프에서 가장 폭 넓게 데이터를 표현할 수 있는 축은 x축도, y축도 아닌 대각선으로 그려진 점선일 것이다. 가장 폭 넓다는 것을 통계량으로 표현하자면 분산이 가장 크게 되는 축이라고 말할 수 있다. (분산 = 넓게 퍼진 정도 이니까.)
이렇게 데이터를 가장 폭 넓게 설명할 수 있는 축을 PC1, 제 1 주성분 이라고 한다. 이 축은 x축도, y축도 아니고 두 변수의 값을 조합해서 만든 새로운 축 = 새로운 변수이기 때문에 PCA를 변수 추출의 한 방법이라고 하는 것이다.
그럼 제 2 주성분, PC2는 어떻게 찾을 수 있을까? 제 1 주성분의 영향을 뺀 후, PC1을 찾을 때 처럼 그 다음으로 가장 주요한 성분을 찾는 것이다. 아래와 같이 제 1 주성분을 x축이 되도록 돌리면 제 1 주성분의 영향이 0이 된다.
이 상태에서 가장 분산이 큰 축은 x축이 된 제 1 주성분과 직교하는 선일 것이다. 이 축이 PC2, 제 2 주성분이 된다. 이런 식으로 변수의 주성분을 뽑게 된다. 차원이 많은 데이터의 경우 PCA, 주성분 분석을 이용해서 적은 수의 변수로도 이 데이터를 표현할 수 있기 때문에 시각화를 위해서 많이 사용하게 된다.
(3) 몇 번째 주성분까지 필요할까? - Scree Plot
그럼 몇 번째의 주성분까지 추출해야 이 데이터를 적절하게 표현했다고 말할 수 있을까?
이건 분석가의 의사결정 문제인데, 이를 결정하기 위해 보통 Scree Plot 이라는 것을 사용한다. 아마 용어는 생소해도 아래와 같은 그래프를 본 적은 있을 것 같다.
꺽이는 지점 전까지는 각 주성분이 데이터에서 차지하는 비중이 큰데, 꺽이는 지점 이후에는 주성분을 포함시켜도 차지하는 비중이 현저하게 적어진다. 그래서 보통 꺽이는 지점까지만 주성분을 포함시켜서 데이터를 표현하도록 결정한다.
(4) 주성분 분석 PCA의 사용처
주성분 분석은 시각화를 편하게 할 때 사용한다. 데이터가 여러 변수로 구성되어 있지만 몇 개의 그룹으로 이루어진 경우 이 그룹별 데이터가 어떤 분포를 이루고 있는지 한 눈에 보기 위해서는 PCA가 가장 편하다. PC1과 PC2의 두 축으로 산점도를 그리고 그룹별로 색을 표시하면 이를 쉽게 파악할 수 있다.
아래 그래프가 바로 그 예시라고 보면 되겠다.
위 그래프를 보면 A와 B 그룹은 상태 또는 특성이 유사하고, C 그룹은 나머지 그룹과 다른 특성을 가지고 있다는 것을 알 수 있다. PC1과 PC2를 합쳐서 총 00%를 설명해주고 있기 때문이다. 여기서 말하는 00%는 각 PC가 차지하는 Variance의 누적비율을 말하는데, 이 수치로 PC가 전체 데이터의 Variance 중 얼마만큼을 설명해주는지를 표현할 수 있다.
(5) R 코드 예제
PCA 실행과 시각화에 대한 R 코드 예제는 별도로 포스팅 하겠다.
▼ 주성분 분석(PCA) 및 시각화 R 실습 해보기 ▼
2018/01/01 - [ANALYSIS/R] - R 예제 코드 - PCA / Principal Component Analysis / 주성분 분석
#algorithm#analysis#bigdata#data#ggplot#pca#pca시각화#prcomp#r#rstudio#r코드#r샘플#r예제#screechart#빅데이터분석#주성분분석#통계#분석#통계분석
'회사생활 > 통계학 공부' 카테고리의 다른 글
분석 리포트 잘 쓰는 법? 데이터 시각화 잘하는 법? (0) | 2020.03.09 |
---|---|
선형 회귀분석의 4가지 기본가정 (10) | 2018.07.22 |
Dimension / 차원 / 차원의 저주 / 차원축소 (9) | 2017.10.25 |
Linear Regression / 선형 회귀분석 (18) | 2017.07.02 |
Recommendation Algorithms / 추천 알고리즘 개요 (0) | 2017.04.27 |