principal_engineface

안선경·2023년 3월 23일
0

ML_study

목록 보기
22/25

  • 이번에는 Principal기법을 사용해서 사람의 사진도 차원을 축소할 수 있는지 확인해보자
  • 먼저 sklearn에서 사람 사진에 대한 자료를 업로드를 한다.
  • 그리고 K=20은 해당 자료에서 20번째 사람의 사진을 불러오는 것이다.
  • 한 사람의 여러 표정을 matplotlib.pyplot의 imshow기능을 이용해 시각화했다.
  • 이제 해당 자료를 축소하기 위해 PCA 모듈을 import한다.
  • 먼저 기존의 자료를 보면 10행 4096열로 이루어진 데이터셋인데, 4096는 64×6464\times64이며 즉, 64x64 픽셀로 이루어진 사진을 컬럼으로 이루어진것이다.
  • 해당 자료를 PCA에 fit_transform하면 10개의 사진이 2개의 차원으로 축소한 것을 볼 수 있다.
  • 해당 자료를 확인해보면 10장의 사진이 두 개의 차원으로 축소된 것을 확인할 수 있다.
  • 또한, 축소한 차원을 inverse_transform으로 되돌릴 수도 있다.
  • 축소한 차원을 다시 되돌리고 시각화를 했을 때 미세한 차이가 발생한 것을 확인 할 수 있다.
  • 이제 축소한 차원을 64*64비트로 다시 구조를 변경하고 해당 자료를 통해 원본 데이터와 비슷한 시각화 작업을 할 수 있다.
  • 축소한 차원은 이런식으로 이해하면 좋을 것 같다.
  • 이제 축소한 차원에 가중치를 두어 x,yx, y축으로 움직여봤다.
  • linspace함수를 이용해 일정한 거리에 따른 간격을 두고 가중치를 줬다.
  • 이 사진은 yy축으로 이동시킨 사진이다.
  • principal은 픽셀로 이루어진 사진의 차원을 축소해도, 어느정도 원본에 가까운 사진을 표현할 수 있다.
profile
상황을 바꿀 수 없다면, 나를 바꾸자

0개의 댓글