[.7 .25 - .7 .26 / .7 .30] PCA(Principal Component Analysis) 주성분분석

2023. 7. 31. 23:53Class review

 

 

PCA(Principal Component Analysis)

 

데이터의 차원을 축소하는 기법으로, 데이터에 내재된 주요 정보를 유지하면서 새로운 변수(주성분)을 생성하는 방법입니다. 주성분은 데이터의 분산을 가장 많이 설명하는 방향을 나타내며, 이를 통해 원래 데이터의 주요 특성을 잘 보존할 수 있습니다.

 

PCA는 두가지 관점으로 이해할 수 있습니다.

더보기


매트릭스 행렬분해

PCA는 행렬분해의 한 형태로 볼 수 있습니다. 원래 데이터 행렬 X를 주성분으로 구성된 행렬과 그에 해당하는 계수 행렬로 분해하는 방법입니다. 이때, 주성분으로 구성된 행렬은 데이터의 고유벡터를 열로 가지며, 계수 행렬은 데이터를 주성분으로 표현하는 계수(가중치)를 담고 있습니다. 행렬분해를 통해 데이터의 주요 특성을 표현하는 새로운 표현이 생성됩니다.

대수학

PCA는 주성분을 찾아 차원을 축소해야하는 데이터에 적용하는 통계적 방법입니다. 주성분 분석은 데이터의 분산을 최대화하는 새로운 축을 찾아내고, 이 축들을 기준으로 데이터를 새로운 좌표계로 맵핑합니다. 이때 첫 번째 주성분은 데이터의 분산을 가장 크게 설명하는 방향을 나타내며, 두 번째 주성분은 첫 번째 주성분과 직교하면서 데이터의 분산을 최대화하는 방향을 나타냅니다. 이렇게 데이터의 분산을 잘 설명하는 주성분들을 이용하여 원래 데이터를 저차원 공간으로 투영함으로써 차원을 축소합니다.

 

 

 

 

 


 

 

 

 

PCA의 단계

 

1. 데이터 표준화

각 변수를 평균 0, 표준편차 1로 표준화합니다.

 

2. 공분산 행렬 계산

표준화된 데이터로부터 공분산 행렬을 계산합니다.

 

3. 공분산 행렬의 고유값 분해

공분산 행렬을 고유값과 고유벡터로 분해합니다.

 

4. 주성분 선택

고유값이 큰 순서대로 주성분을 선택하여 데이터를 새로운 차원으로 투영합니다.

 

이렇게 하면 새로운 주성분 축을 기반으로 데이터를 변환하게 되고, 차원이 축소된 데이터를 활용할 수 있습니다. PCA는 데이터의 시각화, 노이즈 제거, 계산 효율성 향상, 다른 머신러닝 모델에 입력으로 사용 등 다양한 분야에서 유용하게 활용됩니다.

 

 

 

 

 


 

 

 

 

왜 PCA를 사용해 차원을 축소할까?

 

1. 계산 효율성: 고차원 데이터는 계산 및 처리가 복잡하고 시간이 오래 걸릴 수 있습니다. 이런 경우, 저차원으로 축소하면 데이터 처리에 필요한 계산 시간과 자원을 줄일 수 있습니다.

 

2. 차원의 저주(Curse of Dimensionality) 해소: 고차원 데이터에서는 데이터 간 거리가 너무 멀게 분포할 가능성이 높습니다. 이로 인해 모델의 성능이 저하되거나 과적합(overfitting)의 문제가 발생할 수 있습니다. 차원 축소는 이러한 문제를 완화시키는 데 도움을 줄 수 있습니다.

 
 
 

 


 

 

 

 

 

PCA를 이미지 데이터에 적용한 예시

 

 

 

오늘의 질문 : 이미지파일 확장자가 각각 다른 이유

 

강사님 답변

1. .jpg = .jpeg : window에서는 확장자명을 네글자까지 허용하므로 둘은 완전히 같음

2. .png 는 .jpg(=jpeg)와 달리 네개의 채널을 가지고 있는데 (Red, Green, Blue, Alpha) 투명도를 나타내는 Alpha 채널을 가지고 있다는 특성 때문에 윤곽을 잡거나, 객체를 따와 저장할때 주로 쓰인다는 특성을 가지고 있음

 

알파채널 확인 예시

Image.Image.splite()

PCA로 차원 축소할때 R, G, B, A 각 채널별로 (1채널씩) 나누어줄때 사용하는 함수

 

 

 

 

축소한 차원, 다시 복구하기

 

 

왜 축소한 차원을 다시 복구해 확인했을까?

 

PCA로 차원을 축소한 후, 다시 복구하는 과정은 원래의 고차원 데이터로 되돌리는 것을 의미하는데, 이 과정이 필요한 두가지 이유는.

 

1. 정보 손실 확인

차원 축소는 원래의 데이터를 일부 정보를 잃고 낮은 차원으로 표현합니다. 따라서, 축소된 데이터로부터 원래 데이터를 복구해야만 얼마나 많은 정보가 손실되었는지 확인할 수 있습니다.

 

2. 시각화 및 해석성

PCA를 통해 데이터를 저차원으로 표현하면 시각화가 용이하고, 데이터의 패턴과 특성을 더 쉽게 이해할 수 있습니다. 하지만 실제 분석이나 모델 학습을 위해서는 원래의 고차원 데이터를 사용해야 합니다.

 

복구 과정은 PCA의 역변환(PCA Inverse Transform)을 수행합니다. PCA는 주성분들로 이루어진 기저(basis)를 이용하여 데이터를 투영하는데, 이 기저를 이용해 저차원 데이터를 원래의 고차원 공간으로 다시 되돌립니다. 이로써 정보 손실이 있더라도 원래 데이터와 최대한 가깝게 복구할 수 있습니다.

 

간단히 말하면, 차원 축소는 계산 효율성과 차원의 저주를 해소하기 위해 사용되고, 복구 과정은 정보 손실을 확인하고 시각화 및 해석성을 향상시키기 위해 사용됩니다.