Recent Posts
Recent Comments
Link
Today
Total
01-15 20:53
관리 메뉴

Hippo's data

t-SNE(t-distributed Stochastic Neighbor Embedding) 구현 본문

ML(Machine Learning)

t-SNE(t-distributed Stochastic Neighbor Embedding) 구현

Hippo's data 2024. 1. 20. 21:17
728x90

오늘은 지난번 PCA(Principal Component Analysis) 주성분 분석에 이어 또 다른 차원축소 방법인 t-SNE(t- distributed Stochastic Neighbor Embedding) t-분포 확률적 이웃 임베딩에 대해 알아보겠습니다!!

 

차원축소 방법에는 여러가지가 존재하는데요 지난번 알아본 PCA선형 변환을 통해 차원을 축소하는 방법이고 t-SNE비선형적인 방법을 이용한 차원축소 입니다!!!

 

특히 고차원의 데이터를 낮은 차원(주로 2차원이나 3차원)으로 시각화하기 위해 사용되는 기법인데요 

데이터 시각화나 데이터 구조 이해에 사용됩니다!! 

원리는 쉽게 설명하면 고차원에서도 먼 데이터를 저차원에서도 멀게 유지하면서 차원의 크기를 줄이는 것인데요 특히 이름에서도 알 수 있듯이 t 분포를 이용하여 고차원, 저차원 데이터 간 유사도를 계산하는 방식입니다

 

<특징>

t-SNE를 이용한 차원축소의 결과는 클래스간 분별력 있게 차원이 축소됩니다 

하지만 PCA는 차원 축소 후 각 주성분이 변수들과 어떤 관련이 있는지(기여하는지) 확인가능하지만 

t-SNE변수들이 저차원 공간에서 어떻게 표현되는지, 기여하는지 알 수 없습니다!! 

이로인해 t-SNE 결과로 무언갈 추론하기보단 주로 시각화로 활용됩니다

https://medium.com/swlh/everything-about-t-sne-dde964f0a8c1

 

<구현>

# 불러오기

from sklearn.manifold import TSNE

 

# 2차원으로 t-SNE 임베딩 

tsne_np = TSNE(n_components=2, random_state=0).fit_transform(data)

 

# 결과로 얻어진 NumPy 배열을 DataFrame으로 변환

tsne_ df = pd.DataFrame( tsne_np  , columns=['Feature1', 'Feature2'])

728x90