Hippo's data
t-SNE(t-distributed Stochastic Neighbor Embedding) 구현 본문
t-SNE(t-distributed Stochastic Neighbor Embedding) 구현
Hippo's data 2024. 1. 20. 21:17오늘은 지난번 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 결과로 무언갈 추론하기보단 주로 시각화로 활용됩니다
<구현>
# 불러오기
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'])
'ML(Machine Learning)' 카테고리의 다른 글
하이퍼파라미터(Hyperparameter) 튜닝 - optuna (0) | 2024.03.16 |
---|---|
PCA(Principal Component Analysis) 주성분 분석 구현 (0) | 2024.01.14 |
하이퍼파라미터(Hyperparameter) 튜닝 - 그리드서치, 랜덤서치 (0) | 2024.01.11 |
앙상블(Ensemble) (0) | 2024.01.08 |
머신러닝 주요 모델 모델링(Scikit-learn) (0) | 2024.01.08 |