추가 참고자료
https://gaussian37.github.io/ml-concept-t_sne/
https://lovit.github.io/nlp/representation/2018/09/28/tsne/
https://velog.io/@swan9405/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-T-SNE-T-distributed-Stochastic-Neighbor-Embedding
PCA -> t-SNE
PCA는 차원축소를 하면서, 축소된 데이터들이 "어떤 군집에 속하는지?"에 대답하기 어렵다.
이를 해결하기 위해, t-SNE를 활용.
t-SNE란? (t-distributed stochastic neighbor embedding)
* 고차원 데이터 -> 저차원(주로 2차원?)으로 축소할 수 있는 방법, 낮은 차원 공간으로 시각화 하는데에 이용 가능.!
t-SNE의 간략한 과정
(1) 한 점을 선택 후, 다른 점까지의 거리를 측정한다.
(2) t-분포의 가운데에, 선택한 점을 놓고 기준점으로 둔다.
(3) 기준점에서 상대점까지의 측정 거리를 기준으로 t-분포의 값을 선택한다. (유사도)
(4) 유사도가 가까운 값끼리 그룹화.
조금 더 수학적으로 보기.
유사도의 계산에서 t분포를 활용할 수 있을 것이다.
기준점에서, 다른 점까지의 euclidean 거리를 계산 후,
를 계산한다. 그런데 이것들의 합으로 모든 점들의 위의 값을 각각 나눠주면 , 확률 형태가 된다.!
* 그런데, 이럴거면 왜 정규분포를 쓰지 않고 t-분포를 쓰는가?
- t-분포는 정규분포 대비, 끝단의 값이 더 두터운 분포를 가짐.
-> 거리가 멀리 떨어진 데이터의 구분을 더 명확하게 하기 위해 (즉, 유사도가 낮을수록 더 멀리 보내기)
t분포를 사용한다. (특히 이를 위해 자유도를 1로 두고 계산하면 좋다.)
* scikit-learn에 이것이 이미 잘 되어 있다. 감사하자.
'Archive > TIL' 카테고리의 다른 글
[TIL] 0711 아침스터디 - Hyper Parameter tuning(1) (0) | 2022.07.11 |
---|---|
[TIL] 0708 아침스터디 / 표본추출 + Python의 랜덤 (0) | 2022.07.08 |
[TIL] 0704 아침스터디 / VIF, LDA (0) | 2022.07.04 |
[TIL] Transformer 간단정리. (0) | 2022.06.08 |
[NLP] seq2seq / attention 간단개념 (0) | 2022.05.25 |