• 주성분 분석이란?
  • PCA?
  • 데이터분석에서 사용되는 부분
  • R에서 PCA를 한 뒤 결과해석

(1) 주성분 분석이란?

 

주로 주성분분석은 '차원축소'의 형태로 많이 사용된다.

 

 

여러 피쳐로 구성된 데이터셋의 피쳐의 차원을 축소하여 

상대적으로 기존의 데이터셋보다 예측력을 높이고(모델의 성능을 강화), 상관성이 발생할 문제(선형회귀문제에서는 변수들간의 상관관계가 높으면 다중공선성 문제를 불러올 수 있음)를 줄이는 방법을 차원축소라고 한다.

 

차원축소법에는 PCA, LDA, SVD등 여러가지 방법이 있지만

PCA차원축소법을 가장 많이 사용한다.

 

피처선택 (Feature Selection) VS 피처추출 (Feature Extraction)

 

  • 피처선택: 피처의 종속성이 강한 피처들을 아예 제거하여 데이터의 성질을 가장 잘 설명해주는 피처들만 남김
  • 피처추출: 기존피처를 저차원의 중요피처로 압축

 

(2) PCA (Principal Component Analysis) ~ 차원추출법


=> 가장 높은 분산을 가지는 (변수 데이터들이 잘 흩어진다는 뜻=> 하나의 선택된component가 여러개의 variable을  잘 설명한다는 뜻)

 

선형결합으로 이루어진 데이터의 축을 찾아서 고정하고

다른 수직인 축들을 나눠 차원을 축소하여 주성분을 만드는 방법 (선형결합으로 연속형 변수만 사용)

 

쉽게 말하자면, 데이터 프레임의 총 변동을 대부분 설명해줄 수 있는 변수의 선형조합을 찾아내는 것

 


다른 말로 하자면

여러 양적변수들 사이에서 분산-공분산 관계를 이용해서 변수를 선형결합시키는 주성분 component를 찾는다. 

그 후, 대략 2-3개의 주성분으로 전체 variance를 설명하고자 하는 다변량 분석법이다.

 

 

**만약 연속형변수중 중요하게 여기는 변수가 있다면 굳이 차원축소를 해주지 않아도 되지만,

기계의 역할을 좀 더 강조하고 싶다면, 혹은  correlation이 수치형변수끼리 너무 강하게 나온다면 시도해볼 법 하다.

그렇지만, 모두가 상관이 없는데 PCA를 한다면 굳이 각자 설명력을 가진 변수를 뭉뚱그리는 꼴이 된다.

 

(3) 주성분분석의 응용

 

R에서는 주로 prcomp 함수를 사용한다. 

 

1. 회귀분석에서 설명변수의 개수를 결정

2. 인자분석에서 전초작업

3. 군집분석에서 전초작업

 

 

(4) R에서 PCA수행하기

 

data는 양적변수들의 data.frame이다. 

각 변수들 사이에 correlation을 시각화하여 보고싶다면, 1~2줄을 수행하면된다.

 

cor_data = cor(data)
corrplot(cor_data,method='color')
pca = prcomp(cor_data, center=T, scale. = T)

summary(pca)

 

그 뒤, pca를 진행하기 위해 correlation된 데이터 객체를 pca에 넣어주고 summary를 보면

 

변수 개수만큼 PC가 생성되고 각 PC(Principal Component) 전체 프레임에 얼마나 영향을 주는지 수치로 볼 수 있다.

 

 

 

1. Standard deviation : 표준편차

2. Proportion of Variance: 분산의 비율, 각 PC가 전체 프레임에서 얼마나 영향력이 있는지 수치로 나타낸 것

3. Cumulative Proportion: 누적 비율, PC를 하나씩 포함해가면서 프레임을 설명하려 할때, 몇 %정도 전체 프레임을 설명할 수 있는지 나타냄. 예를 들면, PC10의 경우 0.96값으로 PC10까지 96%의 설명력을 가진다는 것을 의미한다.

 

 

 

 

 

 

+ Recent posts