본문 바로가기

정사영 Projection 2d to 1d 2차원 1차원 차원축소 [빅공남! 통계 같이해요]

KAIST수학전공쌤 2022. 1. 25.

정사영 Projection 2차원 1차원 차원축소 개념 등에서 중요한 내용 중에 하나입니다. 빅데이터 분석에서 차원을 축소한다는 개념에서 벡터의 정사영 Projection 개념을 이해하면 도움이 됩니다. 2차원에서 1차원으로 정사영 시키는 것을 시각화 해서 영상을 준비해보았습니다. 

 

2차원을 1차원으로 정사영(Projection)시키는 내용을 준비하고자, 파이썬 코딩 실습을 해보았습니다. 구글 코랩에서 파이썬 코딩실습을 했고, 결국 파이썬 코딩으로 직선을 360도 회전시키면서 정사영 하는 내용을 성공하였습니다. 각도를 바꿔가면서 아래 그림을 만들어 냈습니다.

 

 

1. 정사영(Projection)이란?

어떤 벡터u를 v벡터로 프로젝션 시킨다는 것은 수직으로 빛의 그림자를 만들어서 v젝터에 평행한 벡터로 만드는 것을 나타냅니다. 아래 그림을 통해서 정사영의 의미를 살펴볼 수 있습니다.

 

2. 2차원을 1차원으로 정사영(Projection)?

2차원은 x,y 좌표가 2개 있는 공간을 나타냅니다. 1차원은 하나의 좌표계만 존재하는 수직선을 나타냅니다. 그래서 2차원을 1차원으로 정사영(Projection)한다는 것은 하나의 방향(벡터)가 주어져야하고 이 방향으로 그림자를 만들어서 정사영하는 것을 의미합니다. 그래서 파이썬 코딩으로 하나의 0~360도의 각도를 주어지면 하나의 직선을 결정할 수 있고 이 직선에 수직한 그림자를 그리도록 파이썬 코딩을 만들어서 결과를 만들었습니다. 먼저 x, y축으로 0 도와 90도로 원본데이터를 사영시킨 그림입니다.

이번에는 각도를 비스듬하게 주면서 1차원 직선으로 정사영 시켜보았습니다.

다음 그림과 같이 각각 30도와 120도의 방향 직선에 대해서 정사영을 시킨 데이터 모습입니다, 각도에 따라서 정사영된 점들의 모습을 유의깊게 보도록 하겠습니다.

 

3. 2차원 ☞ 1차원 차원축소 그리고 분산

이번에는 다시 직선의 각도가 30도 경사도 가질 경우와 120도 경사도 가지는 경우의 그림을 다시 한번 살펴보겠습니다.

 

먼저 경사도가 30인 경우는 눈으로 보기에도 최대한 원본 데이터의 분산(퍼짐 정도)를 반영해서 차원이 축소되었다고 생각할 수 있습니다. 즉 두 점사이의 거리가 어느 정도 특징을 가지고 있는 직선으로 볼 수 있습니다. 차원을 줄이게 되면 당연히 원본 데이터의 정보를 잃게 되지만, 방향에 따라서 데이터의 분산(퍼짐 정도)를 담고 있는 정도가 다르게 됩니다.

 

경사도가 120인 경우는 눈으로 정사영된 점들을 보면 분산이 작아져 있는 것을 알 수 있습니다. 원본 데이터에서 멀리 떨어져 있는 점들도 120도로 정사영 시킨 점들을 바라보면 데이터들이 가까이 붙어있어서 분산이 작아져있는 것을 확인 할 수 있습니다.

 

이처럼 데이터의 1차원 직선으로 정사영을 시키면 사영하는 방향에 따라서 데이터의 분산이 다르게 분포됨을 알 수 있습니다.

 

4. 분산이 최대가 되는 직선(방향)?

위의 결과를 보면서 차원을 축소하더라도 원본 데이터의 성질을 어느 정도 유지하면서 축소시키려면 일단 최대한 정사영된 점들의 분산이 최대가 되는 점이 되지 않을까? 하는 생각을 할 수 있습니다. 다시 한번 그림을 보게 되면 30도 일경우에 직선의 분산이 최대가 되는 직선 축에 가까워짐을 알 수 있습니다. 이떄 데이터와의 수직으로 젠 오차(거리)가 어느정도 작아진 상태도 같이 따라감을 알 수 있습니다.

이처럼 이슈는 직선의 방향을 바꿔가면서 정사영을 시키고 투영된 직선의 분포에 분산이 최대가 되는 직선을 잡아가면 되겠다는 생각을 할 수 있습니다.

 

5. PCA(주성분분석)과 연결

위의 결과들을 보면서 분산이 최대가 되는 직선의 방향을 찾는다? 주성분분석(PCA) 관점에서 바라보면 첫번쨰 주성분(PC1)을 찾는 과정으로 볼 수 있습니다. 고차원일 경우 PC1부터 분산이 최대가 되는 기준 축을 잡아가는 과정인데 자세한 내용은 추후 PCA기법 정리해서 설명하고자 합니다.

 

아래 파이썬 코딩 및 자세한 유튜브 공부영상 링크 첨부하도록 하겠습니다.

 

https://youtu.be/9Hdwb8zCDF4

 

댓글