이 방법은 k-means 방법처럼, 클러스터 개수 가정해줄 필요가 없습니다. 또 이방법에서 주목한점이 군집간 거리를 활용하는 방법입니다.
.............................................................................................................................
- 군집간 거리 측정 방식
-method : single, complete, average, centroid, ward linkage 방식이 존재
-Centroid : 두 군집의 중심점(centroid)를 정의한 다음 두 중심점의 거리를 군집간의 거리로 측정
-Single : 최단 연결법, 모든 데이터 조합에서 데이터 사이 거리를 측정해서 가장
최소 거리(작은 값)를 기준으로 군집 거리를 측정
-Complete : 최장 연결법으로 두 클러스터상에서 가장 먼 거리를 이용해서 측정하는 방식
-Average : 평균 연결법, 두 군집의 데이터들 간 모든 거리들의 평균을 군집간 거리로 정의(위에서 singe.complete를 합쳐준 방법이라하면 되겠다)
-Ward : 와드연결법은 군집분석의 각 단계에서 데이터들을 하나의 군집으로 묶음으로써 생기는 정보의 손실을 군집의 평균과 데이터들 사이의 오차제곱합(SSE)으로 아래와 같이 측정한다.
.............................................................................................................................
- 계층적 군집화부분에서 method별로 군집이 나뉘는 부분에 대해 좀더 자세한 이해가 필요할것같아서 정리함.https://en.wikipedia.org/wiki/Single-linkage_clustering 이 자료에 있는 표를 참조하였습니다.
<코드부분>
Xi = np.array([[0,17,21,31,23],[17,0,30,34,21],[21,30,0,28,39],[31,34,28,0,43],[23,21,39,43,0]]) dists = squareform(Xi) #여기서 flat하게 바꾸어 주어야한다.이거 안해주고 넣으면 어딘가 이상해짐 Z = linkage(dists, method='single') # method는 여기서 변경해주면 된다 dendrogram(Z) # 아래 그래프 출력 plt.axhline(20, color='k', ls='--'); #임계치값(20)에 대해 점점이 가로줄을 그어줌
shc.fcluster(Z, 20, criterion='distance') #임계치20에 줄을 그어서 나누어지는 군집들
→ [a,b][c][d][e] 이렇게 나누어짐을 확인할수 있습니다.
<개념부분>
첫번째줄에서, 임계값을 주지않으면, 총 1개의 군집이 출력됩니다. (method별로 만들어지는 dendrogram 모양이다릅니다)
두번쨰 줄에서 임계값을 줌으로써 여러개의 군집으로 나누어줄수 있습니다.
이것은 method 별로 유사도를 처리하는 방법이 다른것을 자세히 나타내 줍니다.
(single 은 가장 가까운 거리를 채택, complete 는 가장 먼거리를 채택, average는 이 두개의 평균을 채택합니다.)
e.g. single linkage 방법에서 abce, d 사이의 거리를 구할때, d와 ab간의 거리 31, d와 c간의 거리 28, d와 e간의 거리 43중에 가장 작은값인 28을 선택해줍니다. 만약 complete linkage 방법이였다면, 43을 선택해주었을것입니다.
(centroid , ward 이 두가지 메소드는 계산과정에서 (x,y)축을 필요로 하기 때문에 x,y축에서 pdist로 유사도를 구하는 방식이 아니라 처음부터 유사도를 집어넣어서 계산하는 방법에는 바람직하지 않음
'<개념> > Deep learning' 카테고리의 다른 글
DL 모델 저장후 다시 불러오기(keras, tensorflow) (0) | 2021.08.14 |
---|---|
opencv로 동영상 자르기+ YOLO 적용 (0) | 2021.06.25 |
베이지안 옵티마이제이션 정리 (Bayesian optimization) (1) | 2021.03.21 |
Coursera Andrew NG - 1 (0) | 2021.02.23 |
Tensorflow function (0) | 2021.02.15 |
Uploaded by Notion2Tistory v1.1.0