728x90
반응형
반응형
🎯 1. K-Means Clustering이란?
K-Means Clustering은 **비지도 학습(Unsupervised Learning)**의 대표적인 알고리즘 중 하나로, 데이터를 K개의 그룹(클러스터)으로 묶는 군집화(Clustering) 기법입니다.
- 데이터를 유사한 특징을 가진 그룹으로 분류하는 알고리즘
- 사전에 데이터의 레이블(정답)이 주어지지 않아, 데이터 자체의 구조를 분석하는 데 활용됨
- 고객 세분화, 이미지 압축, 이상 탐지 등 다양한 분야에서 활용됨
🎯 2. K-Means Clustering의 작동 원리
K-Means 알고리즘은 다음의 단계를 거쳐 수행됩니다.
- K개의 중심점(Centroid)을 임의로 선택
- 각 데이터 포인트를 가장 가까운 중심점에 할당
- 각 클러스터의 중심점을 해당 클러스터 내 모든 데이터의 평균으로 업데이트
- 중심점이 변화하지 않을 때까지 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
반응형