본문 바로가기

NLP

ch3. 군집분석

군집분석은 크게 2가지로 나뉜다. 

 nested성질을 띄는 계층적 군집분석partitioned성질을 띄는 비계층적 군집분석이다. 

 

 

계층적 군집분석(Hierarchical Clustering)

사진출처 :  https://medium.com/h-document/%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0%EB%A7%81-%EA%B5%B0%EC%A7%91-%EB%B6%84%EC%84%9D-%EA%B3%84%EC%B8%B5%EC%A0%81-%EA%B5%B0%EC%A7%91-a7cac74beb6c

 

각 관측치를 하나의 최초 군집으로 지정 → 한번에 두개씩 하나의 군집을 만듬 → 모든 군집이 하나의 군집이 될때까지 결합 

 

계층적 군집분석은 분할방법에 따라 응집형(agglomerate)와 분리형(divisive)dmfh 나뉜다. 

각각 "bottom-up" , "top-down"형식이다. 

 

분할적 군집분석(Partitioned Clustering)

처음에 군집수인 k를 지정한 후, 관측치들을 무작위로 k개의 집단으로 분할하고 다양한 기준에 따라 중심값을 수정한다.

이 방식을 반복하며 집단을 재분류한다.

- 분할방법에는 4가지가 있다. 

 

비계층 군집분석에서 대표적은 K-means Clustering알고리즘을 알아보자.

 

특징

- 사전에 군집의 개수를 정해야한다.

- 클러스터 내 개체를 최대한 비슷하게 만들어야 한다. 

- 클러스터 간 차이는 최대화 해야한다. 

 

** 개체와 클러스터 중심사이의  거리 제곱합이 최소가 되도록

개체를 클러스터링에 할당 ** 

=> 군집내 거리 제곱합이 줄어들수록 유사성이 증가한다. 

 

1. K개의 군집 수 설정

2. 초기 군집에 개체를 할당

- 군집 초깃값은 랜덤 선택, 이에 따라 다른 결과가 나타날지도...

3. 각 개체와 각 군집의 중심사이거리, 가까운 군집으로 재할당

4. 새로운 군집의 중심을 다시 계산한 후, 다시 재할당 여부 판단

5. 재할당이 없을때까지 1~4번 반복

-> 중앙값에 변화가 없을때까지 계속 반복 

 

https://www.youtube.com/watch?v=4b5d3muPQmA참조  

유사도

1. 코사인 유사도

2. 자카드 유사도

 

1. 코사인 유사도

코사인 유사도는 다음과 같다.

https://wikidocs.net/24603  참조

 

결과값은 -1과 1 사이의 값을 갖는다. 코사인 유사도는 단어벡터들 간의 각도를 측정해서 유사도를 평가한다.

코사인 유사도의 결과값은 -1(음의 유사관계, 나란히 역방향), 0(벡터가 수직으로 교차), 1(양의 유사관계, 벡터가 나란히 정방향)

 

https://wikidocs.net/24603참조

2. 자카드 유사도

자카드 유사도는 다음과 같다. 

https://needjarvis.tistory.com/705참조

자카드 유사도를 구하는 과정을 예를 들어 설명해보자.

1.) 모든 데이터를 1과 0인 binary형태로 구분한다. 

예)

지훈 = [1,1,0,0,1,1,0,0,0]

성민 = [0,1,0,0,1,0,1,0,1]

2.) 지훈과 성민이 겹치는 것을 교집합 : 5

      총 개수 : 9 

3.) 지훈과 성민이라는 단어 벡터의 자카드 유사도는 5/9

 

 

'NLP' 카테고리의 다른 글

ch4. 문서분류(Document Classification)  (0) 2023.01.24
ch5. 의미연결망 분석(SNA)  (0) 2023.01.21
ch2. 키워드 분석(KeywordAnalysis)  (0) 2023.01.19