본문 바로가기

명사 美 비격식 (무리 중에서) 아주 뛰어난[눈에 띄는] 사람[것]

이론

비선형 차원축소, UMAP , Uniform Manifold Approximation and Projection

입력변수 개수를 차원, 차원의 저주를 보완하기위해 혹은 시각화하기위한 과정을 차원축소라고 한다 .

https://standout.tistory.com/1779

 

입력변수의 개수 차원 Dimension, 차원의 저주 Curse of Dimensionality 와 차원축소 Dimensionality Reduction하

차원Dimension입력변수의 개수.사람 등록을 위해 키, 몸무게, 나이가 필요하다면 이 3개가 차원이 된다 .x=(170,65,20)즉 위 벡터는 3개의 요소를 가지므로 3차원 공간의 한 점이 된다. 차원의 저주Curse o

standout.tistory.com

 

 

 

 

차원축소의 방법에는 특성선택, 특성추출이있다. 

https://standout.tistory.com/1780

 

차원축소의 방법: 특성선택 & 특성추출(선형 & 비선형)

입력변수 개수를 차원, 차원의 저주를 보완하기위해 혹은 시각화하기위한 과정을 차원축소라고 한다 .차원축소에는 대표적으로 선형차원축소와 비선형 차원축소가있다. Autoencoder는 비선형 차

standout.tistory.com

 

 

 

 

특성추출에서의 비선형차원축소 방법중 아래의 방법을 확인해보자 . 

 

 

 


UMAP , Uniform Manifold Approximation and Projection
최근 많이 사용하는 t-SNE보다 빠른 큰 데이터처리가능하고 전체 구조 보존이 우수하다.

최근 t-SNE를 대체하거나 함께 사용하는 매우 인기있는 알고리즘

https://standout.tistory.com/1783

 

비선형 차원축소, t-SNE, t-distributed Stochastic Neighbor Embedding

입력변수 개수를 차원, 차원의 저주를 보완하기위해 혹은 시각화하기위한 과정을 차원축소라고 한다 .https://standout.tistory.com/1779 입력변수의 개수 차원 Dimension, 차원의 저주 Curse of Dimensionality 와

standout.tistory.com

 

 

고차원 데이터가 어떤 저차원 구조위에 존재한다고 가정하고 그 구조를 최대한 보존하며 저차원 공간으로 투영한다 .

 

Uniform Manifold Approximation and Projection,

Manifold 매니폴드란 3차원 공간속 2차원 구조.

좌표가 찍힌 종이를 둥글게 말았어도 좌표는 얻을 수 있다.

머신러닝 관점에서 MNIST 데이터 784 차원이라해도 실제로는 숫자의 형태,

획의 굵기 기울기 같은 몇개의 핵심요소로 결정되어

784차원이지만 실제 구조는 훨씬 낮은 차원이라는 것이라는것을 가정으로 이 숨겨진 구조를 찾으려는 것.

 

 

고차원 공간에서 누가 누구의 이웃인가?

저차원에서도 이웃끼리 배치하며 고차원 이웃관계를 저차원에서도 유지하는 것을 목표로한다.

많은 사람들이 UMAP을 개선된 t-SNE라 생각하고 이게 '맞다'는 아니지만 비슷한 용도로 사용된다.

속도 느림 빠름
대용량 데이터 불리 유리
지역 구조(Local) 매우 우수 우수
전체 구조(Global) 약함 상대적으로 좋음
재현성 낮음 높음
머신러닝 전처리 잘 안 씀 자주 사용

 

 

 

 

아래 구현코드예시를 보자.

 

n_components = 2 최종차원의 수로 시각화를 위해 주로 사용하고

n_neightbors=15 가장 중요한 파라미터중 하나로 각 데이터가 15개의 이웃을 참고하며

n_neightbors=5등으로 지역구조를 강조하기위해 작게 설정할 수도 있다.

또는 n_neightbors=100 전체구조를 강조하기 위해 크게 설정할 수도 있다.

min_dist = 0.1은 UMAP만의 특징적인 옵션으로 군집이 얼마나 촘촘하게 모일 수 있는가를 결정한다 .

 

t-SNE가 군집내부는 잘 보존하나 군집 간 관계를 왜곡할 수 있다면 UMAP은 군집내부와 군집관계를 비교적 잘 보존한다. 

import umap

umap_model = umap.UMAP(
n_components=2,
n_neighbors=15,
min_dist=0.1,
random_state=42
)

X_umap = umap_model.fit_transform(X)