K-means 클러스터링은 비지도 학습 알고리즘 중 하나로, 주어진 데이터 집합 내에서 유사한 데이터 포인트들을 동일한 그룹으로 묶는 것이 목표이다.
비지도 학습은 데이터를 그룹화할 때 기존의 라벨 정보를 사용하지 않는다. 예를 들어, 빨간 점은 A 그룹, 초록 점은 B 그룹, 파란 점은 C 그룹이라는 라벨이 있는 상태에서 학습하는 것이 아니라, 데이터 포인트들이 빨간 점, 초록 점, 파란 점 근처에서 유사성을 기반으로 자연스럽게 그룹화되도록 하는 방식이다. 이렇게 라벨이 없는 상태에서 데이터의 패턴을 찾아 그룹을 할당하는 것이 비지도 학습의 핵심이다.
K-means 클러스터링 알고리즘은 다음과 같은 단계를 거쳐 데이터를 클러스터링한다.
1) 초기화:
K만큼 임의의 중심점을 선택한다. 이 중심점들은 클러스터의 초기 중심점(centroid)으로 작용한다.2) 할당 단계:
3) 업데이트 단계:
4) 반복:
이 과정을 통해 K-means 클러스터링 알고리즘은 주어진 데이터 집합을 K개의 클러스터로 나누게 된다.
# CLTV 기반 클러스터링
from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler
# 스케일링
scaler = StandardScaler()
df_cluster_scaled = scaler.fit_transform(df_cluster)
# 학습
kmeans = KMeans(n_clusters=5, random_state=42)
kmeans.fit(df_cluster_scaled)
df_cluster['Cluster'] = kmeans.labels_ # 각 행별 결과값들 레이블