운동하는 공대생
[Machine Learning]PCA 본문
0. Intro
데이터는 보통 여러 차원(High-dimensional)으로 구성이 되어 있다. 이런 여러 고차원 데이터는 데이터를 분석하는 과정에서 시각화를 하거나 데이터에 대한 분석을 진행하기에 어려움이 존재한다. 그래서 이런 고차원의 데이터를 차원 축소 방식 PCA를 통해서 표현한다.
1. PCA
PCA 의 추론 과정의 아이디어는 차원을 축소하는 axis 를 잡고 데이터와 axis 축의 projection을 구한다음 그 projection들의 값들의 분산이 최소가 되도록한다면 데이터들이 축소된 차원에서 분산이 가장 큰 특성을 가진 방향으로 축이 만들어진다는 아이디어이다.
더 자세하게 설명을 아래에서 해보겠다.
1.1 Maximum variance formulation
PCA는 결국 차원을 축소하여 데이터에 대한 dimension을 줄여 데이터를 표현하는 방식이다. 이전의 설명처러 고차원 즉 high dimentional 한 상태의 데이터에서 차원을 축소를 한다면 그럼 어떤 axis 축을 기준으로 줄일지에 대한 문제가 발생한다.
아이디어는 위의 사진처럼 데이터에 대한 분포가 있을때 어떤 축을 지정을 하여서 variance를 구하고 이것이 최대가 되도록 하는 축을 차원 축소의 축으로 지정하는 방식이다.
1.1.1 Maximize variance
이제 수학적인 공식에 대하여 설명을 하겠다. 먼저 위의 그래프를 예로들면 2차원의 공간 상에서 데이터가 분포해 있다고 가정할때 한개의 축을 u1 이라고 가정하면 데이터와 이 u1 사이에 직교하게 projection을 그어서 u1의 1차원 공간상으로 데이터의 차원을 축소한다. 이런 가정이 데이터가 xn 가 R^d*1 즉 1차원 공간에 포함 한다는 이야기 이다. 그렇게 1차원 공간으로 데이터를 변환하고 이것을 다시 데이터들의 평균값과 분산인 variance를 구하게 된다. 그렇다면 데이터에 대한 축 u1 의 분포를 구하는게 가능하다. 그렇게하여 이런 축에 대한 데이터의 variance 즉 S 값을 최대로 하는 축을 지정하는게 이 PCA 의 목적이라고 할 수 있다.
1.1.2 Minimize projection variance
그렇다면 한개의 축으로 projection을 하는 방식은 위 사진의 아래와 같이 이루어진다. 이전에 PCA에 대한 아이디어를 이야기를 할때 projection들의 분산이 최소가 되어야 한다고 했는데 이런 projection의 분산은 어떻게 구하는지를 설명하겠다.
-전제조건
u1^TXn 이라는 조건은 먼저 한 데이터의 지점에서 u1 공간 에서의 벡터값이다.
여기서 xn 벡터에 u1의 transpose 를 곱하는 이유는 u1 공간 과 직교한 projection 값을 구하기 위해서인데 u1과 수직한 u1 transpose unit 벡터를 곱해서 u1 transpose상에서의 벡터로 xn 벡터를 변환하면 이것이 u1과는 수직을 이루는 xn의 projection 값이 된다.
이렇게 이제 한 데이터에서 u1 공간상의 projection값을 구했다면 이제 모든 데이터에 대하여 평균값을 구하고 이제 또다시 그 값들을 이용해서 분산을 구해준다. 그렇게 식을 전개한게 사진의 아래와 같고 마지막 S는 sample covariance matrix가 된다.
그 이후에 이제 구한 식을 Lagrange multiplier method 와 u1 에 대한 미분으로 값을 도출하여 구하는게 가능하다 이것을 나중에 추가로 설명을 해보겠다.
2. Goal
데이터 분석에서 주로 사용되는 데이터는 여러 차원으로 구성되어 있습니다. 이러한 고차원 데이터는 시각화하거나 분석하는 데 어려움이 있습니다. 그래서 이러한 데이터를 차원 축소 방법인 PCA(Principal Component Analysis)를 사용하여 표현합니다.
PCA의 아이디어는 데이터를 축소하는데 필요한 축을 찾고, 데이터를 그 축에 투영하여 최대한 분산을 보존하는 방식입니다. 즉, 고차원 데이터를 표현하는데 가장 큰 특성을 가진 축을 찾아 그 축으로 데이터를 축소하는 것이 목표입니다.
PCA는 다음과 같은 과정으로 이루어집니다:
1. 공분산 행렬 계산: PCA는 먼저 원본 데이터의 공분산 행렬을 계산합니다. 이 행렬은 데이터의 차원들 간의 관계를 나타냅니다.
2. 고유벡터와 고유값 계산: 공분산 행렬로부터 고유벡터와 고유값을 구합니다. 고유벡터는 가장 큰 분산을 가지는 방향(축)을 나타내며, 고유값은 해당 방향의 분산의 크기를 나타냅니다.
3. 주성분 선택: 가장 큰 고유값에 해당하는 고유벡터들을 주성분으로 선택합니다. 이 주성분들이 데이터를 투영하는 새로운 축이 됩니다.
4. 데이터 투영: 원본 데이터를 선택한 주성분으로 투영하여 데이터의 차원을 축소합니다.
5. 분산 보존: 선택한 주성분의 개수에 따라 데이터의 분산을 보존하는 정도가 달라집니다. 일반적으로 중요한 정보를 유지하기 위해 적절한 주성분 개수를 선택합니다.
PCA를 통해 데이터를 주성분으로 변환하면, 데이터의 차원이 줄어들면서 데이터 분석과 시각화가 용이해지며 계산 복잡성도 감소합니다. PCA는 데이터 전처리, 패턴 인식, 머신 러닝 등 다양한 분야에서 널리 사용됩니다. 첫 번째 주성분은 데이터의 가장 중요한 구조를 나타내며, 이후 주성분들은 덜 중요한 구조나 직교 방향을 나타냅니다.
요약하면, PCA의 목표는 데이터를 낮은 차원으로 표현하면서 가능한 한 원본 데이터의 분산을 보존하는 것으로, 데이터 분석과 시각화를 더욱 효율적으로 할 수 있도록 도와줍니다.
'Machine Learning' 카테고리의 다른 글
[Machine Learning] 머신러닝에서 딥러닝까지 이론 정리 (2) (0) | 2024.03.13 |
---|---|
[Machine Learning] 머신러닝에서 딥러닝까지 이론 정리 (1) (0) | 2024.03.04 |
[Clustering]Maximum Likelihood Estimation-최대우도법 (0) | 2023.07.25 |
Automated Machine Learning (AutoML) (0) | 2023.05.12 |
[Data Preprocessing] 교차검증(K-Fold, Stratified K-Fold, GridSearchCV) (0) | 2022.12.28 |