6. 차원 축소법 - 주성분 분석(PCA)
목차
- Step 1. 주성분 분석 - 임의 데이터 적용
- Step 2. 주성분 분석 - sklearn Cancer 데이터 적용
- Step 3. 주성분 분석 - sklearn Iris 데이터 적용
Step 1. 주성분 분석 - 임의 데이터 적용
차원 축소(변환) 방법 중 주성분 분석은 통계학에서 제안된 방법이다. 보통 우리가 분석하는 데이터는 많은 변수가 존재한다. 예를들어 30개의 변수가 있으면 30 차원으로 존재한다 말한다. 30 차원을 2 차원으로 축소시켜 사람이 인지할 수 있는 평면상으로 보여주는 것이 차원 축소의 개념이다.
임의 데이터를 이용하여 주성분 분석(PCA)의 기본적인 개념을 알아보자
1 |
|
1 |
|
0을 중심으로 분포 형태를 띄는 정규분포 모양임을 확인할 수 있다. 아래 그림을 살펴보면 현재 변수가 x,y 축에 위치하기에 해당 기준으로 분산이 모두 큼을 확인할 수 있다
이제 해당 데이터들을 기울기, 절편이 존재하도록 선형변환을 진행한다.
- Y = BX + a
- X: 300*2 행렬 : 현재 가지고 있는 데이터
- B: 2*2 기울기 행렬
- a: 절편 벡터
1 |
|
1 |
|
위와 같이 선형변환을 할 경우엔, 기존의 x 축이 현재 그림의 사선으로 존재하면 분산이 더욱 커지고, y축은 그에 대한 직각선 이라면 분산이 작아진다. 앞서 공부했던 분산의 크기에 의한 변수 선택법에 의하면 y축에 대한 분산이 작기에 해당 변수는 가지고 있는 예측 정보량이 작다고 판단할 수 있다. 그렇게 해당 변수는 제거가 가능하며 이것이 주성분 분석의 기본적인 아이디어이다.
이제 실제로 주성분 분석을 실행해보자
1 |
|
1 |
|
이제 pca를 적용한 2 개의 변수를 이용해 주성분 분석 결과를 시각화로 표현해보자
1 |
|
위 그림으로 살펴보면 주성분 분석 결과인 component1은 분산이 크지만, component2는 분산이 작음을 확인할 수 있다. 그럼 pca 주성분의 개수를 1개로만 설정하여 pca를 적용해보자
1 |
|
보다싶이 데이터가 골고루 퍼져있어 분산 즉, 해당 변수의 설명력을 잘 표현함을 확인할 수 있다.
Step 2. 주성분 분석 - sklearn Cancer 데이터 적용
sklearn 에서 제공하는 암에 관련된 dataset을 이용해 pca를 적용해보자
1 |
|
1 |
|
각 변수별 단위와 범위가 다르기에 표준화 진행 후 악성과 양성간의 차이를 보기 위해 data splite 진행하여 시각화 실행
1 |
|
위 그림을 보면 변수별 음성/양성 분포가 비슷한 변수도 있지만, ‘worst concave points’와 같이 음성/양성을 매우 잘 구별할 수 있는 변수도 있음이 확인이 가능하다.
이제 이 데이터 셋을 주성분 분석으로 30 차원에서 2 차원으로 축소시켜보자
1 |
|
1 |
|
숫자로만 판단하기 어렵기에 그림으로 그려서 판단 또한 가능하다
1 |
|
첫번째 행은 모두 초록색 계열이기에 양수이며 가중 평균임을 확인 가능하고, 두번째 행은 음수 양수 섞여있기에 선형 대비 축임을 확인이 가능하다.
그럼 로지스틱 회귀분석을 사용할 때, 모든 변수를 사용할 경우와 주성분 만 사용할 경우 어느것이 성능이 더 좋을지 확인해 보자
1 |
|
1 |
|
이젠 주성분 2개로 이용하여 로지스틱 분석을 실행해보자
1 |
|
1 |
|
오히려 30 개의 변수가 아닌 2 개의 주성분을 이용하는 것이 분류 정확도가 더 높게 나옴을 알 수 있다.