🐍 Python

K-Means Clustering 실습 및 이론 정리

itstory(Booho) 2025. 2. 1. 18:56
728x90
K-Means Clustering은 비지도 학습(Unsupervised Learning)의 대표적인 기법으로, 데이터를 군집화하여 비슷한 특성을 가진 데이터를 묶는 데 사용됩니다. 이 알고리즘은 특히 고객 데이터를 분석하거나 특정 패턴을 찾을 때 유용하며, 실습 과정을 통해 데이터 군집화를 직접 수행해볼 수 있습니다.

K-Means Clustering의 원리

  1. 초기 중심점 설정: K값(클러스터 개수)을 설정하고, 초기 중심점을 랜덤으로 선택합니다.
  2. 클러스터 할당: 각 데이터 포인트에 대해 가장 가까운 중심점에 해당하는 클러스터로 할당합니다. 거리는 일반적으로 유클리드 거리(Euclidean Distance)로 계산됩니다.
  3. 중심점 업데이트: 각 클러스터에 속한 데이터의 평균을 계산하여 새로운 중심점을 설정합니다.
  4. 반복: 중심점이 더 이상 변하지 않을 때까지 2번과 3번 단계를 반복합니다.
  5. 종료 조건: 중심점이 더 이상 변하지 않거나, 반복 횟수가 사전에 설정한 한계에 도달하면 알고리즘을 종료합니다.

실습 진행

1. 데이터 로드 및 탐색

  • 데이터는 200개의 샘플로 구성되어 있으며, 주요 컬럼은 다음과 같습니다:
    • Customer ID: 고객 고유 식별자
    • Gender: 성별
    • Age: 나이
    • Annual Income: 연간 수입 (단위: USD)
    • Spending Score: 소비 지표 (1~100 사이 값)

  • 데이터 탐색:
    • 결측값 유무 확인 (isna().sum())
    • 데이터 통계량 확인 (describe())

2. 데이터 전처리

  • 문자 데이터 처리:
    • Gender 컬럼의 값(남/여)을 숫자형으로 변환 (예: Male=1, Female=0)
    • 이를 위해 LabelEncoder를 사용

  • 특성 선택:
    • Annual Income과 Spending Score를 선택하여 클러스터링 진행

3. K-Means 모델 학습

  • 모델 초기화:K 값을 3으로 설정하고 랜덤 시드를 고정합니다.

  • 학습 및 클러스터 할당:
  • # X는 특성 데이터셋  

  • 결과 저장: 클러스터 결과를 데이터프레임의 새로운 컬럼으로 추가하여 분석 용이성을 높입니다.

4. K값 최적화 (Elbow Method)

  • Elbow Method를 활용하여 최적의 K값을 찾습니다.
  • WCSS (Within-Cluster Sum of Squares): 각 클러스터 내 데이터와 중심점 간의 거리 제곱 합을 계산하여 WCSS 값을 구합니

  • Elbow Plot 시각화:

  • Elbow Plot에서 WCSS 값이 급격히 감소하다 완만해지는 지점을 K값으로 선택합니다.

5. 결과 분석

  • 각 클러스터의 특성을 파악:
  • 클러스터 별 주요 특성을 분석하여 고객 군집의 특성을 도출합니다. 예:
    • Cluster 0: 연령대가 낮고 소비 지표가 높은 그룹
    • Cluster 1: 중간 연령대와 중간 소비 지표 그룹
    • Cluster 2: 연령대가 높고 소비 지표가 낮은 그룹

6. 마케팅 활용 방안

  • Cluster별 전략 수립:
    • Cluster 0: 적극적인 구매 유도를 위한 할인 쿠폰 제공
    • Cluster 1: 정기적 리마인드 이메일 발송
    • Cluster 2: 고급 제품 마케팅 강화
  • 비즈니스 적용 사례:
    • 고객 군집을 기반으로 맞춤형 CRM 전략 설계
    • 특정 군집 타겟팅을 통한 광고 효율 개선

실습 결론

K-Means Clustering은 데이터의 비슷한 특성을 가진 그룹을 효과적으로 분류하는 데 매우 유용합니다. 이번 실습에서는 쇼핑몰 고객 데이터를 사용하여 고객 군집화를 수행했고, 이를 통해 고객별 맞춤형 마케팅 전략을 세울 수 있음을 확인했습니다. 추가적으로 Elbow Method를 통해 최적의 클러스터 개수를 설정함으로써 분석의 정확성을 높였습니다.

728x90