이번에는 차원축소방법중 하나인 TSNE에 대해서 알아보겠습니다.
간단한 설명 후 실제로 Python 에서 어떻게 T-SNE를 이용하는지에 대한 예를 들어 보겠습니다.
TSNE에 대해 간단히 알아 보기
차원 축소는 기계학습(Machine Learning)에서 매우 중요합니다. 왜냐하면 고차원의 데이터를 가지고 모델을 만들면 Under fitting 되기 쉽기 때문입니다. 즉, 쓸모 없는 데이터가 너무 많아서 학습이 되지 않는 현상이지요. 고차원, 즉 여러 데이터 중에서 가장 중요한 데이터만 골라서 (저차원으로 만들어서) 모델에 사용할 수도 있고, 여러 데이터를 이용하여 새로운 데이터를 만들어서 저차원으로 만들수도 있습니다. 어째튼 이처럼 고차원의 데이터를 저차원으로 변환하는 것이 필요합니다. 이것이 바로 차원 축소(Dimension Reduction) 방법입니다. (이외에도 Feature를 만드는 방법에는 Feature Elimination, Feature Selection 등의 방법이 있습니다.) 차원 축소 방법은 선형 방법(Principal Component Analysis (PCA), Independent Component Analysis, Linear Discriminant Analysis, 등)과 비선형 방법(Manifold, Auto-encoder 등)이 있습니다. TSNE는 Manifold 방법중 하나입니다.
SNE (Stochastic Neighbor Embedding)에서 t-SNE (t-distributed Stochastic Neighbor Embedding)로 발전했고, 이후 다시 UMAP (Uniform Manifold Approximation and Projection)으로 발전 하였습니다.
Python 을 이용해 Tsne 구현해 보기
간단한 코드와 설명은 아래와 같습니다.
아래는 화면에 출력된 결과 입니다.
차원 축소가 잘 되었는지 안되었는지 알아볼 수 있는 좋은 시각화 툴 입니다. 이를 이용해서 임베딩된 데이터를 시각화해 봄으로써 품질을 가늠해 볼 수 있습니다.
'인공지능-기계학습 > 통계_모델_알고리즘' 카테고리의 다른 글
sklearn을 이용한 초간단 선형회귀 모델 (0) | 2022.08.25 |
---|---|
퍼셉트론 Perceptron (0) | 2022.03.13 |
최대가능도방법 MLE: Maximum Likelihood Estimation (0) | 2022.03.12 |
가능도/우도/Likelihood (0) | 2022.03.11 |
확률 밀도 함수 PDF (Probability Density Function) (0) | 2022.03.10 |