AI/이론

135. [Python] [Machine Learning] : K-평균 군집화(K-Means Clustering)

천재단미 2025. 1. 31. 16:58
728x90
반응형

반응형

 

 

 

 

 

🎯 1. K-Means Clustering이란?

K-Means Clustering은 **비지도 학습(Unsupervised Learning)**의 대표적인 알고리즘 중 하나로, 데이터를 K개의 그룹(클러스터)으로 묶는 군집화(Clustering) 기법입니다.

  • 데이터를 유사한 특징을 가진 그룹으로 분류하는 알고리즘
  • 사전에 데이터의 레이블(정답)이 주어지지 않아, 데이터 자체의 구조를 분석하는 데 활용됨
  • 고객 세분화, 이미지 압축, 이상 탐지 등 다양한 분야에서 활용

 

 


 

🎯 2. K-Means Clustering의 작동 원리

K-Means 알고리즘은 다음의 단계를 거쳐 수행됩니다.

  1. K개의 중심점(Centroid)을 임의로 선택
  2. 각 데이터 포인트를 가장 가까운 중심점에 할당
  3. 각 클러스터의 중심점을 해당 클러스터 내 모든 데이터의 평균으로 업데이트
  4. 중심점이 변화하지 않을 때까지 2~3 단계를 반복

 

📌 최종적으로, 모든 데이터 포인트가 K개의 클러스터 중 하나에 할당되며, 각 클러스터는 데이터의 특성을 반영한 그룹이 됨

 


 

🎯 3. K-Means Clustering의 장점과 단점

🔹 장점

빠르고 단순한 연산 (대규모 데이터셋에서도 사용 가능)

해석이 쉬움 (거리 기반 군집화로 결과가 직관적)

다양한 응용 가능 (고객 분류, 이상 탐지, 이미지 처리 등)

🔹 단점

K값을 사전에 정해야 함

초기 중심점 선택에 따라 결과가 달라질 수 있음

이상치(Outlier)에 민감

구형(원형) 형태의 클러스터만 잘 찾음

📌 K 값을 어떻게 설정할지 고민해야 하며, 중심점을 최적화하는 방법(K-means++)가 필요함!

 


 

🎯 4. K-Means Clustering의 실습 (Python)

✅ 라이브러리 불러오기

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.preprocessing import LabelEncoder
from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs

 

 


 

✅ 데이터 생성 

#  데이터 생성
df = pd.read_csv('../data/Mall_Customers.csv')
df


# 결측치 확인 
df.isna().sum()


# y 는 없다. 비슷한 성향으로 묶어달라! 
X = df.loc[ : ,'Genre' : ]

# 문자열 데이터를 숫자로 변환
encoder = LabelEncoder()
X['Genre'] = encoder.fit_transform(X['Genre'])

 


 

✅ K-Means  그룹핑

# KMeans 모델 생성
wcss = []
for k in range(1, 10+1):
    kmeans = KMeans(n_clusters=k,random_state = 31)
    kmeans.fit(X)
    wcss.append(kmeans.inertia_)

wcss

# wcss 시각화 
plt.plot(np.arange(1, 10+1),wcss)
plt.show()

 

 


 

✅ K-Means 모델 학습

Kmeans = KMeans(n_clusters = 6,random_state = 31)
y_pred = kmeans.fit_predict(X)
df['Group'] = y_pred

df.loc[df['Group'] == 1 , ]

 

 

 

 


 

🎯 5. K-Means Clustering의 실전 응용 사례

🔹 고객 세분화 (Customer Segmentation)

  • 쇼핑몰에서 고객을 그룹화하여 맞춤 마케팅 수행

🔹 이미지 분할(Image Segmentation)

  • 이미지 내 유사한 픽셀을 클러스터링하여 색상 분류

🔹 이상 탐지 (Anomaly Detection)

  • 금융 거래 데이터에서 비정상적인 거래(사기 탐지) 수행

🔹 추천 시스템

  • 영화, 음악, 상품 추천에서 사용자 취향에 따른 추천 제공

 


 

🎯 6. K-Means vs. 다른 클러스터링 알고리즘 비교

알고리즘 특징

K-Means 빠르고 간단하지만, K를 사전에 설정해야 함
Hierarchical Clustering 트리 형태로 클러스터를 생성하여 K 설정 불필요
DBSCAN 밀도를 기반으로 클러스터링하여 이상치(Outlier)에 강함
Gaussian Mixture Model (GMM) 확률 기반으로 데이터 클러스터링

 

📌 데이터의 특성에 따라 적절한 클러스터링 기법을 선택하는 것이 중요!

 

 

 

728x90
반응형
home top bottom
}