본문 바로가기
개발 Tools/파이썬_Deep learning & ML

머신러닝 Spectral Clustering

by 전컴반 2022. 2. 11.
반응형

Clustering(클러스트링)이란, 번역하면 군집, 집단, 무리라는 뜻을 가진다. 데이터의 관점에선 주어진 데이터들의 특성을 고려해 집단을 정의하고 집단의 대표할 수 있는 대표점을 찾는 것으로 데이터 마이닝의 한 방법이다.

클러스트링에는 여러 방법이 존재한다.

 

1. 평균 기반

2. 계층 기반

3. 밀도 기반

4. 연결 기반

 

이중에 이번에는 Spectral Clustering을 알아볼까한다. 많은 경우에서 기존의 클러스트링 알고리즘보다 더 나은 성능을 보인다.

 

저작권침해의사없음

 

Spectral Clustering는 거리가 가까이 있더라도 연결이 없다면 군집화하지 않는다. 

크게 3가지 절차를 거쳐 클러스트링을 진행한다.

 

첫 번째로, 각각의 데이터 포인트를 유사도에 따라 행렬(그래프)로 변환시킨다.

- 좀 더 쉽게 생각하면, 신호를 주파수 도메인으로 변경하면 쉽게 풀리는 것과 같은 이유다. 1번을 기준으로 나머지 번호들과 유사도를 기준으로 행렬을 만든다.

 

이때, 어떤 유사도를 쓰는지는 약 3가지 정도가 있다. 간단히 보면

 

1. Epsilon-neighbourhood Graph : Epsilon을 고정시켜 그 반경에 있는 애들과 다 연결한다, 가중치와 방향성은 없다

2. K-Nearest Neighbours : k점을 고정시켜 2개의 벡터를 이동하며 연결한다. 가중치와 방향성이 있다.

3. Fully-Connected Graph : 모든 점들이 다 연결돼 있다. 거리를 기준으로 나뉜다. 거리의 계산은 보통 가우시안 유사도를 따른다

 

저작권침해의사없음

 

두 번째로, 유사도 행렬에서 주성분을 뽑아내다. (PCA)

- 위 그림 오른쪽 행렬에서 주요한 성분을 뽑아낸다. 위에서 주성분은 열을 기준으로 초록색과 주황색, 노란색을 띤 열이 주성분이 될 것이다. (고유벡터, 고유값 기준) (1열, 4열, 5열 == 3차원) 

그리고 각 점을 주성분을 기준으로 행렬 비교하며 변환한다. 그러면 주성분이 3개니 3차원으로 나타날 것인데, 하나하나의 주성분과 비슷한 요소(데이터)끼리 모인다.

 

저작권침해의사없음

 

세 번째로, 변환된 그래프에서 클러스트링을 진행한다. 

- 주로 KMeans를 사용한다. KMenas를 연결성에 중점을 둔 알고리즘이라고 할 수 있다.

 

 

파라미터는 아래와 같다.

 

 

 

어렵다 어려워~~

반응형

댓글