Ⅴ단원 · 3 / 5차시

k-최근접 이웃(k-NN) 알고리즘으로 분류하기

거리를 이용해 새로운 데이터를 분류하는 k-NN 알고리즘의 원리를 배우고, 기후 데이터와 재활용품 이미지를 직접 분류해 봅니다.

학습목표

  • 유클리디언 거리를 이용해 두 데이터 사이의 거리를 구할 수 있다.
  • k-최근접 이웃(k-NN) 알고리즘의 원리를 설명하고, k값에 따라 분류 결과가 달라짐을 확인할 수 있다.
  • 해밍 거리를 이용해 이미지 데이터를 분류할 수 있다.

시간 배분

단계활동
도입기후 변화 패턴을 어떻게 분류할까?5분
활동1k-NN 알고리즘과 유클리디언 거리10분
활동2k-NN 분류기 — k값에 따라 달라지는 분류20분
활동3해밍 거리로 재활용품 분류하기15분
도입 · 5분

기후 변화 패턴을 어떻게 분류할까?

전 세계 주요 도시들의 기후 데이터(온도, 강수량 등)를 분류하면 각 도시가 직면하고 있는 기후 변화를 파악하여 대응할 수 있습니다. 이번 시간에는 k-최근접 이웃(k-NN, k-Nearest Neighbors) 알고리즘의 수학적 원리와 분류 방법을 탐구해 봅니다.

활동 1 · 10분

k-NN 알고리즘과 유클리디언 거리

k-NN 알고리즘은 판별하고 싶은 데이터와 인접한 $k$개의 데이터를 찾아 데이터 간의 거리(distance)를 측정하여 다수결에 따라 새로운 데이터를 기존 클래스로 분류하는 방법입니다. 중요한 것은 새로운 데이터와 기존 데이터와의 거리를 측정하는 것이며, 이때 유클리디언 거리(Euclidean distance)가 주로 사용됩니다.

$\overline{PQ}=\sqrt{(x_2-x_1)^2+(y_2-y_1)^2}$

예를 들어 $P(4,4)$, $Q(2,2)$ 사이의 유클리디언 거리는 $\overline{PQ}=\sqrt{(4-2)^2+(4-2)^2}=2\sqrt2$입니다.

k값 선정 방법 : $k$값은 인접한 데이터의 개수를 의미합니다. $k=1$부터 시작하여 $k$값을 1씩 증가시키며 성능을 테스트하여 최적의 성능을 보이는 $k$값을 찾습니다.
활동 2 · 20분

k-NN 분류기 — k값에 따라 달라지는 분류

훈련 데이터는 노란 사각형, 파란 원의 클래스 2개로 나뉘어 있습니다. 새로운 테스트 데이터(★)가 어느 클래스에 속하는지, $k$값을 바꾸며 확인해 보세요.

k-NN 분류기 (온도-강수량 데이터)
3
노란 사각형
2
파란 원
1
분류 결과
사각형

교과서 확인 결과와 비교해 보세요 — $k=3$일 때 사각형 2개, 원 1개로 사각형으로 분류, $k=7$일 때 사각형 3개, 원 4개로 으로 분류, $k=10$일 때는 사각형 5개, 원 5개로 분류할 수 없습니다 (동점).

활동 3 · 15분

해밍 거리로 재활용품 분류하기

이미지를 행렬로 변환한 뒤 해밍 거리를 이용하면 재활용품(페트병, 캔)을 분류할 수 있습니다. $l_1, l_2$가 서로 다른 페트병이고 $l_3$가 캔, $l_4$가 페트병이라고 합시다. 해밍 거리는 0에 가까울수록 유사도가 높습니다.

해밍 거리로 재활용품 분류하기

기준 페트병 이미지($l_1$)와 해밍 거리가 0에 가까운 것을 찾아 다른 페트병을 분류할 수 있습니다. 다만 크기가 다르거나 형태가 일부 왜곡된 이미지에서는 정확한 분류가 어렵고, 해밍 거리는 위치에 따른 차이만 고려하므로 이미지의 전체적인 차이를 비교하기는 어렵다는 한계가 있습니다.

차시 예고

오늘은 k-NN 알고리즘과 해밍 거리로 데이터를 분류하는 방법을 배웠습니다. 다음 시간에는 벡터 연산으로 ChatGPT가 언어를 이해하는 원리를 탐구합니다.

← 2차시 — 인공지능 윤리 탐구활동 4차시 — 단어 벡터 연산으로 ChatGPT의 원리 이해하기 →