스파르타클럽 내일배움캠프 QA/QC 5기 04/22 TIL

2026. 4. 22. 20:51내일배움캠프 TIL

오늘은 머신러닝과 라이브러리 심화 강의를 들었다.

지도학습 vs 비지도학습

지도학습은 문제(X)와 정답(Y)이 모두 주어진 상태에서 학습하는 방식이다. 반면 비지도 학습은 정답(Y) 없이 데이터 간의 유사성만으로 그룹을 만들어내는 방식이다. 정답이 없기 때문에 지도학습보다 어렵고, 분석가의 주관적 판단이 개입될 수밖에 없다.

비지도 학습의 대표적인 활용 예시로는 고객을 헤비유저/일반유저로 그룹화하거나, 구매 내역별로 데이터를 묶는 것이 있다. 본질적으로 데이터를 기반으로 레이블링하는 작업이라고 할 수 있다.

K-Means Clustering

가장 널리 사용되는 군집화 알고리즘이다. 수행 순서는 다음과 같다.

1단계: 원하는 군집 수 K를 설정한다. 2단계: 임의의 중심점 K개를 선정한다. 3단계: 각 데이터를 가장 가까운 중심점의 군집으로 할당한다. 4단계: 각 군집에 속한 데이터들의 평균 위치로 중심점을 이동한다. 5단계: 3~4단계를 중심점이 더 이상 변하지 않을 때까지 반복한다.

붓꽃 데이터로 예를 들면, species 레이블 없이 sepal_length와 sepal_width만으로 산점도를 그렸을 때 눈으로는 구분이 어렵지만, K-Means를 적용하면 K개의 그룹으로 자동 분류해준다. 실제 종(species) 레이블과 비교해보면 꽤 유사한 결과가 나온다.

장점: 일반적이고 적용하기 쉽다.

단점: 차원이 많아지면 정확도가 떨어지고, 반복 횟수가 많으면 느려지며, K값 선정이 주관적이고, 평균 기반이라 이상치에 취약하다.

Python에서는 sklearn.cluster.KMeans를 사용하며, n_clusters로 군집 수, max_iter로 최대 반복 횟수를 지정한다.

군집 평가 - 실루엣 계수(Silhouette Score)

비지도 학습은 정답이 없으니 평가가 까다롭다. 하지만 "같은 군집 내 데이터는 가깝고, 다른 군집과는 멀어야 한다"는 원칙으로 평가할 수 있다. 이를 정량화한 것이 실루엣 계수다.

S(i) = (b(i) - a(i)) / max(a(i), b(i)) 로 계산하는데, a(i)는 같은 군집 내 다른 데이터들과의 평균 거리, b(i)는 가장 가까운 다른 군집까지의 평균 거리다.

값이 1에 가까울수록 군집화가 잘 된 것이고, -1에 가까우면 잘못 군집화된 것이다. 좋은 군집화의 조건은 전체 실루엣 값이 높으면서, 개별 군집 간 평균값의 편차가 크지 않은 것이다.

실전 적용 - RFM 고객 세그멘테이션

비지도 학습이 가장 많이 활용되는 분야가 CRM(고객 관계 관리)이다. 그 중 RFM 분석은 고객을 세 가지 기준으로 분류한다: Recency(최근 구매일로부터의 경과 시간), Frequency(구매 횟수), Monetary(총 구매 금액).

UCI Online Retail 데이터셋을 활용한 실습에서는 원본 거래 데이터를 고객 단위로 R, F, M 값을 계산하여 집계한 뒤 StandardScaler로 표준화하고, K-Means를 적용하여 고객 군집을 나눴다. 이렇게 나눈 그룹별로 맞춤형 마케팅 전략을 세울 수 있다는 점이 실무적 가치다.