일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- RegressionTree
- 결정계수
- DataScience
- ML
- scikitlearn
- LogisticRegression
- Python
- GridSearchCV
- 비지도학습
- 시계열데이터
- 분류
- deeplearning
- 시계열 데이터
- machinelearning
- 단순선형회귀분석
- 잔차분석
- 로지스틱회귀분석
- 손실함수
- 의사결정나무
- OrdinalEncoder
- LinearRegression
- 데이터분석
- time series
- 선형회귀분석
- 데이터전처리
- 지도학습
- 하이퍼파라미터
- dataframe
- 다중선형회귀분석
- 딥러닝
- Today
- Total
IE가 어른이 되기까지
[Machine Learning] 주성분 분석 (비지도학습 / 데이터 축소) 본문
만약 예측 시 필요한 독립변수 간 편차가 다르면
어떻게 해야할까요 ?
이런 경우, 각 독립변수에 적절한 가중치를 반영하여
유용한 변수를 생성할 수 있습니다.
이것이 바로 이 글에서 다루고자 하는
'주성분 분석' 입니다.
주성분 분석이란 ?
위 그림처럼 원 변수의 가중합 (축 회전) 을 수행하여
새로운 변수를 생성하게 되는데, 이렇게 생성된 새로운 변수를
'주성분'이라고 불립니다.
가장 중요한 특징은 주성분들 간에는 상관관계가
존재하지 않다는 것입니다.
데이터 분산 ( = 정보량)
주성분 분석은 원변수가 설명하는 분산을 가장 잘 설명하는
새로운 변수인 주성분을 원변수의 가중합을 통해 구해내는 과정입니다
이때 등장하는 '분산'이란 무엇이란 무엇일까요 ?
주성분 분석은 위와 같은 특성을 가지고 있습니다.
원변수의 분산, 즉 정보량을 가장 많이 설명해 내는 변수를
제 1주성분이라고 하며 그다음으로 많이 설명해 내는 변수를 차례대로
제 2주성분, 제 3주성분, ... 이라고 합니다.
이렇게 원변수가 지닌 정보를 대부분 지닌 새로운 수치형 변수가
생성되는 것입니다.
STEP 1. 원 변수 공분산 행렬 구하기
지금부터 주성분 분석이
어떻게 수행되는지 자세히 알아보겠습니다.
위와 같은 표를 활용하여 주성분 분석을
수행하고자 합니다.
먼저 위 표의 공분산 행렬(가중치 행렬)을 구합니다.
행렬 표를 보니 키 분산과 몸무게의 분산은 거의 비슷하며
공분산은 0이 아님을 알 수 있습니다.
이는 상관관계가 존재한다는 의미입니다.
하지만 우리는 상관관계가 없는,
즉 공분산이 0인 상태로 만들어주고자 합니다.
STEP 2. 주성분 공분산 행렬 구하기
상관관계가 없도록 관측치를 원 변수의 평균에서 뺀 후,
아래와 같은 과정을 통해 주성분(z)의 공분산 행렬을 구할 수 있습니다.
STEP 3. 주성분 축 구하기
주성분 분석 후, 주성분 축을 구하는 방법에 대해
알아보겠습니다.
주성분 개수 선택
주성분 개수는 누적 설명력이 80% 이상인 주성분을 선택하거나
위와 같은 Scree plot을 이용했을 때 Eigenvalue가 평탄해지기 직전까지의
주성분을 선택합니다.
주성분 회귀분석
실제 산업에선 관측치의 개수보다 독립변수의 개수가 현저하게 많은 경우도 있고,
독립변수 간의 상관성이 매우 높기도 합니다.
이런 경우엔 주성분 분석을 통해
데이터의 차원을 감소시킨 후, 기존의 회귀분석 방법을 이용하여
모델링을 진행합니다.
주성분 분석 효과
원변수가 지닌 정보량 (분산) 의 손실 없이 차원을 감소시킬 수 있습니다.
이를 통해 다중공선성을 방지할 수 있기도 합니다.
많은 정보를 담고 있는 중요한 변수만 선택이 가능하며
변수 간의 상관관계를 제거할 수 있습니다.
보통 주성분 분석은 전처리 과정으로 활용됩니다.
'ML > Algorithms' 카테고리의 다른 글
[Machine Learning] 군집분석 (비지도학습 / 데이터 축소) (0) | 2023.02.13 |
---|---|
[Machine Learning] SVM (지도학습 / 분류) (0) | 2023.01.28 |
[Machine Learning] 로지스틱 회귀분석 (지도학습 / 분류) (0) | 2023.01.17 |
[Machine Learning] KNN (지도학습 / 예측 & 분류) (0) | 2023.01.12 |
[Machine Learning] 의사결정나무 (지도학습 / 분류) (0) | 2023.01.12 |