단원 홈
3단원 · 3차시

비슷한 것끼리 묶다
군집 분석

정답표가 없어도 괜찮아요. 데이터 스스로 비슷한 것끼리 무리(군집)를 이루게 하면, 숨어 있던 '집단'이 드러나요. 거리로 유사성을 재고, k-평균으로 직접 군집을 만들어 봅시다.

성취기준 12데과03-03
유사성·거리k-평균군집 해석
🎯 학습 목표
  • 군집 분석의 개념과 유사성(거리) 측정을 이해한다.
  • k-평균 알고리즘의 과정을 설명할 수 있다.
  • 군집 분석 결과의 의미를 해석하고 활용 방안을 제시할 수 있다.
🤔

생각 열기 — 누가 알려 주지 않아도 묶인다

색깔별로 무리지어 있는 군집 산점도
정답(라벨) 없이도 가까이 모인 점들이 자연스러운 '무리(군집)'를 이룬다 — 데이터 스스로 집단을 드러낸다. 그림: BogdanShevchenko, CC BY-SA 4.0, Wikimedia Commons

운동장에 친구들이 모여 있다고 해 봐요. 누가 시키지 않아도 농구하는 무리, 수다 떠는 무리, 벤치에 앉은 무리로 자연스레 묶이죠. 데이터도 그래요. '정답'을 알려 주지 않아도, 서로 비슷한(가까운) 데이터끼리 무리를 짓게 할 수 있어요. 이것이 군집 분석이에요. 1차시에서 배운 비지도학습의 대표 선수죠 — 정답표 없이 데이터 속 숨은 집단을 찾아냅니다.

💬 함께 생각해 보기

우리 반 학생들을 '비슷한 취미'끼리 묶는다면 몇 개 그룹이 나올까요? '비슷하다'를 어떻게 숫자로 잴 수 있을까요? (힌트: 두 데이터가 얼마나 '가까운지'를 생각해 보세요.)

1

'비슷하다'를 숫자로 — 유사성과 거리

군집의 핵심은 유사성(비슷한 정도)을 재는 거예요. 가장 흔한 방법은 거리예요 — 두 데이터를 좌표 위의 점으로 보고, 가까울수록 비슷하다고 봐요. 두 점 사이의 곧은 거리를 유클리드 거리라고 해요 (피타고라스 정리와 같아요!).

📏 거리로 유사성 재기 — 주의: 정규화!

거리를 재기 전, 2단원에서 배운 정규화가 중요해요. '나이(10~60)'와 '구매액(0~500만원)'을 그대로 쓰면 숫자가 큰 구매액이 거리를 독차지해 버려요. 같은 척도로 맞춰야 공정하게 '비슷함'을 잴 수 있죠. (준비가 분석을 살린다 — 2단원과 이어지죠!)

2

대표적인 군집 방법 — k-평균(k-means)

k-평균은 가장 널리 쓰이는 군집 방법이에요. 과정은 의외로 단순해요.

  1. k개의 중심을 아무 데나 찍는다(k = 만들 군집 수).
  2. 배정: 각 점을 가장 가까운 중심의 무리에 넣는다.
  3. 갱신: 각 중심을 자기 무리의 평균 위치로 옮긴다.
  4. 중심이 더 안 움직일 때까지 2~3을 반복한다.

아래 시뮬레이터에서 고객 데이터를 직접 군집으로 묶어 보세요. (가로축 나이, 세로축 월 구매액)

👥 고객 세분화 — k-평균 시뮬레이터 INTERACTIVE

군집 수 k를 고르고, 한 단계씩 또는 자동 실행으로 중심(★)이 움직이며 무리가 만들어지는 과정을 지켜보세요.

k =
[안내]'한 단계'를 누를 때마다 ① 각 점을 가까운 중심에 배정 → ② 중심을 무리의 평균으로 이동, 이 두 단계를 한 번씩 해요.
3

군집에 '이름'을 붙이다 — 결과 해석

군집을 만들면 끝이 아니에요. 진짜 중요한 건 "각 군집이 어떤 집단인가?"를 해석하는 거예요. 위 시뮬레이터의 결과를 보면, 각 무리의 중심(★) 위치로 그 집단의 특징을 읽을 수 있어요 — 예를 들어 '나이는 젊은데 구매액이 큰' 무리는 "젊은 큰손 고객"이라 이름 붙일 수 있죠.

💼 군집 분석은 어디에 쓸까

고객 세분화: 비슷한 고객끼리 묶어 맞춤 마케팅(VIP엔 혜택, 휴면 고객엔 쿠폰). ② 지역 분류: 비슷한 특성의 동네를 묶어 정책 설계. ③ 이상 탐지: 어느 무리에도 안 끼는 외톨이 데이터 = 이상치(사기 거래 의심). 정답이 없는 방대한 데이터에서 숨은 구조를 찾는 강력한 도구예요.

⚠️ k는 몇 개가 좋을까 — 정답은 없다

k-평균은 k를 사람이 정해 줘야 해요. k를 바꾸면(2/3/4) 군집 결과가 달라지죠. "몇 개로 나누는 게 의미 있나?"는 데이터와 분석 목적에 따라 달라요. 또 처음 중심을 어디 찍느냐(초기값)에 따라 결과가 크게 달라지기도 해요 — 운이 나쁘면 어색하게 나뉜 결과(지역 최적)에 갇히기도 하죠('중심 다시'를 눌러 보세요!). 그래서 보통 여러 번 다른 시작점으로 실행해, 가장 잘 나뉜 결과를 고릅니다.

확인 문제

바로바로 채점!

✏️

3차시 확인 문제

4문항 · 즉시 채점

1군집 분석의 특징으로 알맞은 것은?

2군집 분석에서 두 데이터가 '비슷한 정도(유사성)'를 재는 대표적인 방법은?

3k-평균 알고리즘의 핵심 과정으로 알맞은 것은?

4[OX] k-평균에서 군집 수 k는 사람이 정해야 하며, k나 초기 중심에 따라 결과가 달라질 수 있다.

더 알아보기

교과서 너머의 이야기 — 클릭해서 펼쳐 보세요

사례넷플릭스·스포티파이는 당신을 '어느 무리'로 볼까

여러분이 즐겨 보는 추천 서비스 뒤에는 군집 분석이 숨어 있어요. 스포티파이는 수억 명의 청취 데이터로 비슷한 취향의 사람들을 '음악 부족(taste cluster)'으로 묶고, 같은 무리의 사람들이 좋아한 곡을 서로에게 추천해요. 넷플릭스도 시청 패턴이 비슷한 사람들을 묶어 '이 무리가 좋아한 작품'을 추천하죠. 쇼핑몰은 구매 패턴으로 고객을 'VIP·일반·휴면' 등으로 세분화해 각기 다른 혜택을 줘요. 이렇게 군집 분석은 "당신과 비슷한 사람들이 좋아한 것"을 찾아 주는, 우리 일상 곳곳의 추천 엔진이랍니다. 정답을 일일이 달지 않아도 데이터 스스로 집단을 찾아 주니, 수억 명에게도 적용할 수 있는 거예요.

개념k를 몇으로? — '팔꿈치'로 찾기

"군집을 몇 개로 나눌까(k)?"는 군집 분석의 오랜 고민이에요. 너무 적으면 서로 다른 집단이 뭉뚱그려지고, 너무 많으면 의미 없이 잘게 쪼개지죠. 이를 돕는 방법 중 하나가 '엘보우(팔꿈치) 방법'이에요. k를 1, 2, 3, … 으로 늘려 가며 '군집 안의 흩어진 정도(오차)'를 그래프로 그리면, 처음엔 가파르게 줄다가 어느 지점부터 완만해져요. 그 꺾이는 지점(팔꿈치처럼 생긴 곳)이 적당한 k인 경우가 많아요 — 그 이후로는 k를 늘려도 별 이득이 없거든요. 물론 이것도 참고일 뿐, 최종 판단은 "이 군집들이 실제로 의미가 있나?"를 사람이 해석해서 내려요. 숫자와 해석을 함께 보는 거죠.

생각묶음의 두 얼굴 — 편리함과 꼬리표

군집 분석으로 사람들을 묶으면 맞춤 서비스가 가능해 편리하지만, 그림자도 있어요. 사람을 특정 집단으로 묶어 '꼬리표(프로파일링)'를 붙이는 셈이라, 자칫 차별이나 편견으로 이어질 수 있거든요. 예를 들어 사는 동네나 소비 패턴으로 사람을 묶어 대출·보험에서 불이익을 준다면 공정할까요? 또 '비슷한 사람'에게 비슷한 것만 추천하다 보면, 늘 보던 것만 보게 되는 '필터 버블'에 갇힐 수도 있어요. 그래서 군집 결과로 사람을 다룰 때는 "이 묶음이 누군가에게 불이익을 주진 않는가, 사람을 지나치게 단순화하진 않는가"를 늘 살펴야 해요. 데이터의 힘이 클수록 책임도 커진다는 것 — 데이터 과학의 변치 않는 원칙이에요.