공든탑앱 열기

k-NN·SVM·나이브 베이즈

빅데이터분석기사 · 분석기법 · 약 11분

쉽게 말하면

새로 전학 온 친구가 어느 동아리에 맞을지 볼 때 가장 비슷한 친구 다섯 명이 어디에 있는지 보는 게 k-NN 이에요. SVM 은 두 무리 사이에 가장 넓은 길을 내서 나누는 방법이고, 나이브 베이즈는 '무료', '당첨' 같은 단어가 나오면 스팸일 확률을 곱해 판단하는 방법이에요.

시험용 정의

k-최근접 이웃(k-NN)은 학습 단계에서 모형을 만들지 않고 데이터를 저장해 두었다가(게으른 학습), 새 데이터가 오면 거리가 가장 가까운 k 개 이웃을 찾아 분류는 다수결, 회귀는 평균으로 예측한다. 서포트 벡터 머신(SVM)은 두 범주를 나누는 경계(초평면) 중 양쪽 가장 가까운 점까지의 거리인 마진이 가장 큰 것을 찾는다. 경계에 가장 가까운 점들을 서포트 벡터라 하고, 직선으로 나눌 수 없으면 커널 함수로 데이터를 더 높은 차원으로 옮겨 나눈다. 나이브 베이즈는 베이즈 정리로 각 범주의 사후확률을 계산하되 변수들이 범주가 정해지면 서로 독립이라고 가정해 계산을 단순하게 한다.

비유로 이해하기

k-NN 은 처음 간 동네에서 맛집을 고를 때 근처 사람 다섯 명에게 물어 다수결로 정하는 것이다. SVM 은 두 마을 사이에 경계 도로를 낼 때 양쪽 집에서 가장 멀리 떨어지도록 가장 넓은 길을 내는 것이고, 길가에 가장 가까운 집들이 서포트 벡터다.

자세히

먼저 알아 둘 말

말뜻
게으른 학습미리 모형을 만들지 않고 예측할 때 계산하는 방식
초평면공간을 둘로 나누는 경계. 2차원에서는 직선, 3차원에서는 평면
마진경계와 가장 가까운 점 사이의 거리
커널데이터를 고차원으로 옮긴 것과 같은 효과를 내는 함수 (선형, 다항, RBF)

k-NN

  • k 를 사람이 정한다. 동점을 피하려 홀수를 쓰기도 한다
  • k 작음 → 과대적합, k 큼 → 과소적합. 교차검증으로 고른다
  • 거리 계산이라 변수 단위를 맞추는 표준화가 필요하다
  • 학습은 빠르지만 예측할 때 모든 점과 거리를 재야 해서 데이터가 크면 느리다

SVM

  • 마진을 최대화하는 초평면을 찾는다
  • 서포트 벡터만 경계를 정하고 나머지 점은 영향이 적다
  • 커널은 저차원 데이터를 고차원으로 옮기는 효과를 낸다 (고차원 → 저차원이 아니다)
  • 소프트 마진: 몇 개의 오분류를 허용하는 정도를 정한다
  • 고차원 데이터에 강하지만 데이터가 크면 느리고 해석이 어렵다

나이브 베이즈

P(범주 | 특징) ∝ P(범주) × P(특징₁ | 범주) × P(특징₂ | 범주) × … 처럼 각 특징의 확률을 곱해 가장 큰 범주를 고른다. 특징끼리 독립이라는 가정이 현실과 달라도 스팸 메일 분류처럼 문서 분류에서 빠르고 꽤 정확하다.

한눈에 구분

설명알고리즘
로짓과 시그모이드로 범주에 속할 확률 추정로지스틱 회귀
범주 사이 마진을 최대화하는 초평면SVM
가장 가까운 k 개 이웃의 다수결k-NN
베이즈 정리 + 특징 독립 가정나이브 베이즈
질문으로 나눠 가는 나무 규칙의사결정나무

시험에 이렇게 나와요

확인 문제

Q1. k-NN 에서 k 를 아주 작게(예: 1) 잡으면 어떤 문제가 생기기 쉬울까?

  1. 계산이 불가능함
  2. 모든 점을 같은 범주로 보는 과소적합
  3. 범주 수가 늘어남
  4. 잡음에 민감한 과대적합
정답 보기

4번 잡음에 민감한 과대적합

가장 가까운 한 점만 보면 그 점이 잡음이어도 그대로 따라간다. k 가 작으면 과대적합, 너무 크면 과소적합이다.

Q2. k-NN 에 대한 설명으로 옳지 않은 것은?

  1. 가장 가까운 k 개 이웃을 찾는다
  2. 거리를 쓰므로 표준화가 필요하다
  3. k 가 클수록 과대적합이 생긴다
  4. 미리 모형을 학습하지 않는다
정답 보기

3번 k 가 클수록 과대적합이 생긴다

k 가 작을수록 과대적합, 클수록 과소적합이다.

Q3. SVM 에서 결정 경계에 가장 가까이 있는 데이터 점은?

  1. 서포트 벡터
  2. 이상값
  3. 중심점
  4. 잎 노드
정답 보기

1번 서포트 벡터

이 점들이 마진과 경계를 정한다.

Q4. SVM 의 커널 함수가 하는 일은?

  1. k 를 정한다
  2. 결측값을 채운다
  3. 데이터를 고차원 공간으로 옮겨 나눌 수 있게 한다
  4. 데이터를 저차원으로 줄인다
정답 보기

3번 데이터를 고차원 공간으로 옮겨 나눌 수 있게 한다

직선으로 나눌 수 없는 데이터를 고차원에서 나눈다.

Q5. 변수들이 범주 안에서 서로 독립이라고 가정하는 분류기는?

  1. SVM
  2. k-NN
  3. 나이브 베이즈
  4. 랜덤 포레스트
정답 보기

3번 나이브 베이즈

'나이브(순진한)' 가정이 바로 독립 가정이다.

Q6. '두 범주 사이의 간격을 최대화하는 초평면으로 분류'하는 알고리즘은?

  1. 나이브 베이즈
  2. 로지스틱 회귀
  3. SVM
  4. k-NN
정답 보기

3번 SVM

마진 최대화가 SVM 의 핵심이다.

헷갈리기 쉬운 O·X

k-NN 은 학습 단계에서 복잡한 모형을 미리 만들어 둔다.

정답 보기

X 데이터를 저장해 두었다가 예측할 때 계산하는 게으른 학습이다.

SVM 의 서포트 벡터는 결정 경계에 가장 가까이 있는 점이다.

정답 보기

O

SVM 의 커널 함수는 고차원 데이터를 저차원으로 바꿔 계산을 단순화한다.

정답 보기

X 저차원을 고차원으로 옮기는 효과를 낸다.

함께 보면 좋은 개념