개발/AI

[AI] 군집분석

Jindory 2024. 5. 8. 21:56
반응형

안녕하세요. 개발자 Jindory입니다.

오늘은 머신러닝의 군집분석에 대해서 글을 작성해보려고 합니다.

글에 앞서 본 글은 멀티캠퍼스의 "핵심만 쏙! 실무에 바로 적용하는 머신러닝"의 강의를 참고하여 작성한 내용임을 밝힙니다.

 

[ 글 작성 이유 ]

AI 관련 강의를 수강하며, 머신러닝과 관련된 개념 및 설명을 정리하고자 작성하게 되었습니다.


1. 군집분석이란?

주어진 데이터에서 구조와 패턴을 찾아 유사한 특성을 가진 그룹으로 나누는 데이터 마이닝 기법을 "군집분석"이라고 합니다. 이를 통해 데이터 간의 유사성을 파악하고, 데이터를 분류하거나 축소하는 등 다양한 분석에 활용할 수 있습니다.

군집분석은 K-means, K-medoids, Hierachical Clustering, Non-hierachical Clustering 등이 있습니다. 군집분석은 클러스터를 생성하고, 데이터간 유사성을 판단하여 군집을 만드는 절차로 이뤄집니다.

 

1.1 클러스터 생성 방법

가장 유사한 데이터 포인트를 동일한 클러스터로 구성합니다. 클러스터를 구성시 같은 클러스터 내의 데이터간의 거리는 최대한 가깝게, 다른 클러스터 간의 거리는 최대한 멀어지도록 설정하는것이 이상적입니다.

1.2 데이터간 유사성 판별 방법

  1. 데이터 간의 '거리'를 사용
    • 데이터 간의 거리를 기준으로 클러스터를 형성하는 방법입니다.
    • 주로 유클리디안 거리(Euclidean Distance)를 사용하여 데이터 같의 거리를 계산합니다.
    • 거리 기반 척도를 사용하는 클러스터링 알고리즘은 K-means, K-medoids 등이 있습니다.
    • 이 방법은 연속형 데이터에 적용됩니다.

  2. 데이터 간의 '각도'를 사용
    • 데이터 간의 각도를 기준으로 클러스터를 형성하는 방법입니다.
    • 주로 코사인 유사도(Cosine Similarity)를 사용하여 데이터 같의 각도를 계산합니다.
    • 각도 기반 척도를 사용하여 클러스터링 알고리즘에는 Spectral Clustering이 있습니다.
    • 이 방법은 텍스트 데이터나, 벡터 공간에서의 클러스터링에 적용됩니다.

  3. 데이터의 '빈도'를 사용
    • 데이터의 빈도 정보를 기준으로 클러스터를 형성하는 방법입니다.
    • 주로 범주형 데이터에서 사용됩니다.
    • 특정 단어가 문서 내에서 얼마나 자주 등장하는지를 기준으로 클러스터를 형성할 수 있습니다.

2.1 K-menas 군집분석

"데이터를 기준점을 중심으로, 유클리디안 거리가 최소가 되도록 K개의 묶음으로 구분하는 군집 알고리즘" 입니다.

K-means는 주어진 데이터를 K개의 그룹으로 묶는 분석 방법입니다. K개의 군집을 설정하여, 데이터를 K개의 그룹으로 나눌 수 있습니다. K-means의 분석 방법은 아래와 같습니다.

  1. 군집 개수 결정(K 결정)
  2. 초기 centroid 결정
  3. 데이터를 가장 가까운 Centroied에 할당
  4. 할당된 군집을 기반으로 새로운 Centroid 계산
  5. 군집 할당 반복

 

 

2.1 K-medoids 군집분석

K-means와 비슷하지만 중앙점(medoids)를 사용하여 군집을 형성하는 알고리즘 입니다. 중앙점은 군집 내부 점들의 좌표 평균 대신에 사용합니다.이 방법은 K-means 보다 이상치에 더 강한 성능을 보일 수 있습니다. K-medoids의 절차는 아래와 같습니다.

  1. 군집 개수 걸졍(K 결정) : 그룹화 할 K를 미리 설정합니다.
  2. 초기 Centroid 결정 : 초기에 군집이 존재하지 않기 때문에 데이터 중 무작위 K개의 중앙점(medoids)를 선택합니다.
  3. 군집 할당 : 각 데이터를 가장 가까운 중앙점(medoids)에 할당합니다.
  4. Centroid 업데이트 : 할당된 군집을 기반으로 새로운 중앙점(medoids)를 계산합니다. 중앙점은 군집 내부 점들의 좌표 평균이 아닌, 실제 데이터 포인트 중 가장 가까운 점으로 선택됩니다.
  5. 군집할당반복 : 데이터의 군집 할당에 더이상 변동이 없을 때까지 군집 할당과 중앙점(medoids) 업데이트를 반복합니다.

3.1 군집분석 평가 방법

군집분석이 얼마나 잘 데이터의 그룹핑 했는지 평가하는 방법에 대해서 알아보겠습니다. 군집 분석 평가 방법 중 하나인 실루엣 점수(Silhouette Score)는 군집의 응집도와 분리도를 측정하는 지표입니다. 실루엣 점수의 특징은 아래와 같습니다.

  • 실루엣 점수는 각 데이터 포인트가 자신의 군집에 얼마나 잘 속해 있는지를 나타냅니다.
  • 점수 범위는 0에서 1사이이며, 1에 가까울수록 해당 데이터 포인트가 자신의 군집에 잘 속해 있음을 의미합니다.
  • 실루엣 점수는 각 데이터 포인트의 점수를 평균하여 전체 군집의 응집도와 분리도를 나타냅니다.

실루엣 점수를 통해 아래와 같은 장점을 얻을 수 있습니다.

  • 군집의 적절성을 판단할 수 있다.
  • 실루엣 점수가 높을수록 군집 간 분리가 잘 되어 있고, 군집 내 응집도가 높다는 것을 의미합니다.
  • 실루엣 점수가 시각화하여 최적의 군집 개수를 결정할 수 있습니다.

4.1 군집분석 활용

군집분석은 아래와 같은 다양한 상황에서 사용될 수 있습니다.

  1. 고객 세분화: 고객 그룹화를 통해 공통적인 취향이나 성질을 파악하고, 각 그룹에 맞는 광고 전략을 수립할 수 있습니다. 이는 주로 타겟팅된 광고에서 활용됩니다.
  2. 인사 관리: 직원 성과 분류, 교육 지원, 직무 만족도와 이직 의도 분석, 내/외부 채용 관리, 직원 복지 최적화, 조직 문화 분석, 퇴직률 예측 및 관리 등 인사 관리 분야에서 군집분석이 활용됩니다
  3. 의료진단: 환자 데이터를 군집화하여 질병 패턴이나 유사한 증상을 파악하고, 개별 환자에게 적합한 치료 방법을 결정할 수 있습니다.
  4. 지식 발견: 연구 분야에서 데이터의 내재적인 구조를 탐색하고, 새로운 통찰력을 얻기 위해 군집분석을 활용합니다.

이렇게 머신러닝의 군집분석에 대해서 알아봤습니다.

 

혹시라도 정정할 내용이나 추가적으로 필요하신 정보가 있다면 댓글 남겨주시면 감사하겠습니다.

오늘도 Jindory 블로그에 방문해주셔서 감사합니다.


[참조]

- [멀티 캠퍼스] 핵심만 쏙! 실무에 바로 적용하는 머신러닝 

반응형