본문 바로가기
파이썬/머신러닝-비지도학습

파이썬 머신러닝 비지도학습 - 차원축소 - t-SNE

by 큰고양2 2023. 9. 21.

t-SNE

t-SNE는 가까운 거리에 있는 데이터를 차원을 축소해서도 가깝게 만드는 차원축소 방법으로

원본의 유사도 맵을 만들고 축소된 데이터의 유사도맵과 원본의 유사도를 비교하여

원본과 최대한 비슷한 유사도를 가진 데이터로 만드는 방법으로

비선형 축소방식이다

차원은 2~3차원으로 축소해야하며 시각화에 주로 사용한다

 

 

사용하기

import
from sklearn.manifold import TSNE

코드로 임포트를 하고 사용 할 수 있다

이후

tsne = TSNE(n_components = 2, random_state=20)
x_tsne = tsne.fit_transform(x)

# DataFrame으로 변환
x_tsne = pd.DataFrame(x_tsne, columns = ['T1','T2'])

tsne 변수에 모델을 지정하고

x를 fit 해준다 만약 다른 데이터를 학습시키고 싶다면 원하는 데이터를 넣어주면 된다

n_components 파라미터는 데이터의 차원을 지정하는 파라미터로 2 (2차원), 3(3차원)을 지정 할 수 있다

 

이후 데이터프레임으로 변환을 해주었다

시각화
plt.figure(figsize=(6,6))
sns.scatterplot(x = 'T1', y = 'T2', data = x_tsne, hue = y)
plt.grid()

다음 코드로 타겟별 분포를 시각화 할 수 있다

 

ex)