• 카테고리

    질문 & 답변
  • 세부 분야

    딥러닝 · 머신러닝

  • 해결 여부

    미해결

군집화 성능평가 실루엣 계수 말고는 다른 방법은 없는지 궁금합니다.

21.04.27 14:17 작성 조회수 365

1

선생님께서 설명해주신 것 처럼, 실루엣계수로 군집화를 평가하는데 많은 취약점들(대용량데이터에서는 수행시간 너무 오래걸리고, 특정군집의 실루엣 계수만 유난히 높아서 다른 군집들은 클러스터링이 잘 안되었는데도 실루엣계수 전체 평균값이 높게 나오는 경우 등..)이 있어보이는데..

실루엣계수말고 군집화를 평각하는 다른 지표가 있나요..?

현업에서는 대용량데이터를 군집화 할 때 (실루엣계수 말고) 군집화를 평가하려면, 보통 어떤 식으로 평가하는 지 궁금합니다...!

(다른 방법이 없어서 현업에서도 대략적으로 실루엣계수를 통해 참고만 하는 정도인지.. 궁금하네요.)

답변 1

답변을 작성해보세요.

2

안녕하십니까,

기본적으로 많이 쓰이는 방식은 elbow method와 실루엣계수가 있습니다. 실루엣 계수가 보다 효과적으로 evaluation에 사용되기에 elbow method는 소개 시켜드리지 않았지만 실루엣 계수보다 더 빠르게 평가를 할 수 있습니다. 

elbow method는 개별 군집 데이터들이 가장 가까운 중심점(centroid)와의 거리 제곱합을 기반으로 계산합니다. 일반적으로 centroid가 많아질 수록 거리 제곱합은 작아집니다(아무래도 근접한 centroid를 찾기가 더 쉬워지므로)

그래서 centroid 증가에 따른 거리 제곱합의 그래프를 그림으로 그려보면 사람 팔꿈치(elbow)형태의 그림이 그려지는데, 이때 elbow로 꺾이는 지점을 최적 centroid 갯수로 잡습니다. 검색해 보니 아래 사이트에서 잘 설명이 된 것 같습니다. https://daeson.tistory.com/212

하지만 elbow method의 정확성을 그냥 참조하는 수준입니다. 좀 더 정확하게 하려면 실루엣 계수가 나은데, 문제는 시간이 오래 걸리고, 메모리를 너무 많이 잡는다는 것입니다.

실무에서도 실루엣 계수를 적용하는데, 시간이 오래 걸리는 것은 큰 문제가 아닐 수 있는데(밤새 돌리고 기다리면 됩니다 ^^) 문제는 메모리를 많이 잡아먹기 때문에 데이터가 백만건 이상되면 적어도 50~60G 정도의 메모리를 잡아먹었던것 같습니다(기억이 정확하진 않습니다).

그래서 고객 데이터가 몇백만건 쯤 되면 실루엣 계수를 적용하기가 어려워서 랜덤하게 샘플링을 한 데이터를 기반으로 실루엣 계수를 적용하기도 합니다.

그리고 일반적으로는 군집화 하려는 개괄적인 갯수가 존재합니다. 고객유형을 나눈다고 한다면,  어느정도 분류 유형에 대한 개수를 정하기도 합니다.

이러한 적용 방법들을 복합적으로 사용해서 클러스터링 개수를 최적화 해나갑니다.

감사합니다.

freedom07님의 프로필

freedom07

질문자

2021.04.28

아 그렇군요..!! 경험을 바탕으로 상세하게 답변해주셔서 정말 감사합니다^^