K-NN은 어떻게 정답을 맞힐까요?
새로운 질문(Query)이 주어지면, 가장 가까운 K명의 이웃을 찾아 다수결로 결정합니다.
모든 이웃과의 거리 측정
새로운 데이터(Query Point)가 주어지면, 주변의 모든 기존 데이터들과의 직선 거리(유클리드 거리)를 하나씩 전부 계산합니다.
K명의 가까운 이웃 선정
거리가 가까운 순서대로 정렬한 뒤, 우리가 미리 설정해 둔 K개 만큼의 가장 가까운 이웃 데이터만 추려냅니다.
다수결 투표 및 분류
가장 가까운 K명의 이웃들이 속한 소속(Class)을 확인하고, 가장 많은 표를 얻은 그룹으로 새로운 데이터의 소속을 최종 결정합니다.
K-NN 분류 시뮬레이터
데이터를 배치하고 분류할 「Query Point(새로운 점)」를 찍어 보세요. 이웃들이 어떻게 뭉치는지 확인할 수 있습니다.
자료
분류
K는 홀수(1~29)만 고를 수 있고, 움직이면 바로 다시 분류합니다.
다수결 투표
동점(Tie)이 발생하면 어떻게 될까?
시뮬레이터에서 득표수가 똑같이 나왔을 때 「(동점: 거리 우선)」
이라는 메시지를 보셨나요?
다수결이 승부를 가리지 못했을 때 무엇을 고를지는 K-NN이 정해 주지 않습니다. 만드는 사람이 규칙을 하나 정해야 하고,
구현마다 그 규칙이 다릅니다. 이 시뮬레이터는 아래 규칙을 씁니다.
동점인 그룹 중 가장 가까운 이웃을 따른다
득표수가 똑같다면, 동점인 그룹들 안에서 나와 가장 가까운 이웃 한 명을 찾아 그 그룹의 손을 들어 줍니다. 동점에 끼지 못한 그룹은 그 그룹의 이웃이 아무리 가까이 있어도 이 판단에 끼어들지 않습니다.
🤔 친구들과 토론해 볼까요?
-
QK-NN에서 K값을 짝수(2, 4)가 아닌 홀수(3, 5, 7)로 설정하라고 권장하는 이유는 무엇일까요?
-
QK값을 홀수로 설정하더라도 무승부가 발생할 수 있을까요?
(힌트: 그룹이 3개 이상일 때를 상상해 보세요.)
확인 퀴즈
배운 내용을 확인해 봅시다.
Q1. K-NN 알고리즘에서 K값을 3으로 설정했을 때, 새로운 데이터의 분류 기준은 무엇인가요?
Q2. 시뮬레이터에서 K값을 변경(예: 3 → 7)하면 분류 결과가 달라질 수 있습니다. 그 이유는 무엇인가요?