소품집

[ML] Hierarchical Clustering - 계층적 군집 본문

AI

[ML] Hierarchical Clustering - 계층적 군집

sodayeong 2020. 6. 13. 17:27
728x90

Hierarchical Clustering


Hierarchical Clustering: 계층적 군집화

 

알고리즘

  1. 각 데이터들을 cluster라 가정 (cluster는 데이터의 개수만큼 존재한다)
  2. 각 데이터 pair 사이의 Distance 계산
  3. 가장 Distance가 작은 pair를 하나의 cluster로 묶음 (=similarly가 크다)
  4. 모든 데이터가 하나의 cluster로 묶이지 않았으면 2.로 가서 반복

 

예시

Hierarchical을 Dendrogram으로 그리면 의사결정 나무와 비슷한 모습을 보여줍니다.

 

 

 

Hierarchical Clustering 변형


두 개의 cluster 간에 Distance를 잴 때, 어떤 방식으로 Distance를 재느냐에 따라 여러가지 변형 존재

 

  • single-link : 모든 선을 그었을 때 가장 짧은 선. 위의 그림에서는 2번째라고 할 수 있음
  • complete-link : 가장 먼 거리의 link (3~6)
  • average-link : features 사이의 평균 link

 

 

Distance 재는 방법들의 formal 수식

 

 

Clustering을 위한 Distance Metric


  • 지금까지는 Distance가 그냥 주어져있다고 가정했지만, 실제로는 두 데이터 간의 Distance 값을 계산해야 하는 경우가 대부분임
  • 두 데이터 간에 어떤 방식으로 Distance를 재느냐, 즉 어떤 'Distance Metric'을 사용하느냐가 매우 중요!
    • 군집화 겨로가가 완전히 달라질 수 있음
  • 예를들어, '흰 색 냉장고' vs '흰색 지우개'의 Distance를 구현한다고 가정해보자
    • 색깔로만 Distance를 구할 경우 : Distance는 거의 0
    • 크기로 Distance를 구할 경우 : Distance가 매우 큼. (ex: 200cm vs. 3cm)
      • (아직까지 해결되지 못 한 이미지 분류의 한계점이라고 합니다.)

Distance/Similarity Metric


Similarity의 반대 : Dissimilarity (Distance)

 

 

심화


  1. Short-hair 처럼 Categorical features, or 누락된 feature들에 대한 계산은 어떻게 해야 좋을까?
    • 라벨링하여 변환한다 or 평균값으로 대체한다.
  2. {1.0, 582, black}과 같이 여러 타입의 feature가 섞여있는 경우에는 유사도 계산을 어떻게 해야 할까?
    • Real number(1.0)와 categorical data(black)가 함께 있는 경우인데요. 이 경우, real-number는 값의 범위가 다르기 때문에 정규화 과정을 거쳐야합니다. 그리고 categorical data는 0 or 1과같이 값으로 변환
  3. 어떤 외계종족은 몸무게는 50~100kg인데, 키가 2~2.5cm라면? 이 경우에 문제는 무엇이고 해결방법은 무엇일까?
    • kg과 cm의 단위가 다르기 때문에 이를 맞춰주기 위한 스케이링(정규화)이 필요합니다. 이 때 이 과정을 생략하게 된다면 엉뚱한 학습결과를 확인할 수 있습니다. ^__^
  4. 거리를 재는 여러 방법들의 특징과 장단점이 무엇일까?
    • KL divergence, Euclidean distance, cosine similarity
    • KL divergence와 Mutual information과의 관계
    • → 이거 공부 해야함 ㅎㅎ

위와 같은 농구선수의 정보가 있는 데이터가 있다고 가정해봅시다.

누락 데이터(missing value)를 처리하는 방법을 생각해봅시다.

  1. 누락을 제외한 value의 mean 값으로 대체 (단순하면서도 무식한 방법)
  2. 행 or 열 drop
  3. 0 으로 변환 (몸무게가 0kg일 수는 없음,, 이럴 경우 차라리 mean 값을 넣는 게 낫다)

교수님 11~14 다음시간에 한다 했는데 안한것 같아요....

담 시간에 말해야징

728x90
Comments