• 카테고리

    질문 & 답변
  • 세부 분야

    딥러닝 · 머신러닝

  • 해결 여부

    미해결

군집분석(K-Means) 질문

21.08.08 17:04 작성 조회수 468

0

안녕하세요. 머신러닝/비지도 학습 공부 중 질문이 생겨서 이렇게 글을 남기게 되었습니다.
K-Menas의 경우 우선, 중심값을 기준으로 거리를 측정해, 군집을 형성하는데,
1. 혹시 초기 군집값은 랜덤하게 생성을 해주는 것일가요?
2. 거리를 계산할 때도, 유클리드 거리 통해서 계산하는것으로 아는데, 항상 유클리드 거리로 계산을 하는지,
혹, 옵션을 통해서 맨해튼거리로도 계산이 가능한지 궁금합니다.
감사합니다.

답변 1

답변을 작성해보세요.

1

안녕하십니까, 

1. KMeans 객체를 생성할 시 init 옵션을 줄수가 있는데 이때 'kmeans++' 또는 'random' 을 선택할 수가 있습니다. 

https://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html

random은 말 그대로 무작위입니다(오리지날 kmeans에 적용됩니다). kmeans++는 보다 효과적인 초기화 방법인데, 일반적으로 초기화 포인트가 비슷한 지점에 생기지 않도록 구현되었습니다. 자세한 설명은 아래를 참조 부탁드립니다.

https://lovit.github.io/nlp/machine%20learning/2018/03/19/kmeans_initializer/ 

2.  scikit learn은 유클리드만 지원하는 걸로 알고 있습니다. API를 뒤져봐도 해당 기능은 없는것 같습니다(제가 알기론, 맨하탄 거리가 클러스터링 효과가 상대적으로 좋지 않은 것으로 알고 있습니다.)

감사합니다.