k-NN·SVM·나이브 베이즈
쉽게 말하면
새로 전학 온 친구가 어느 동아리에 맞을지 볼 때 가장 비슷한 친구 다섯 명이 어디에 있는지 보는 게 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 |
| 베이즈 정리 + 특징 독립 가정 | 나이브 베이즈 |
| 질문으로 나눠 가는 나무 규칙 | 의사결정나무 |
시험에 이렇게 나와요
- k-NN: 사전 학습 없이 가까운 k 개로 분류, k 가 클수록 과대적합은 틀림 (작을수록 과대적합)
- SVM: 마진 최대 초평면, 서포트 벡터는 경계에 가장 가까운 점, 커널이 고차원을 저차원으로 바꾼다는 틀림
- 설명 보고 알고리즘 연결: 로지스틱 – SVM – k-NN
확인 문제
Q1. k-NN 에서 k 를 아주 작게(예: 1) 잡으면 어떤 문제가 생기기 쉬울까?
- 계산이 불가능함
- 모든 점을 같은 범주로 보는 과소적합
- 범주 수가 늘어남
- 잡음에 민감한 과대적합
정답 보기
4번 잡음에 민감한 과대적합
가장 가까운 한 점만 보면 그 점이 잡음이어도 그대로 따라간다. k 가 작으면 과대적합, 너무 크면 과소적합이다.
Q2. k-NN 에 대한 설명으로 옳지 않은 것은?
- 가장 가까운 k 개 이웃을 찾는다
- 거리를 쓰므로 표준화가 필요하다
- k 가 클수록 과대적합이 생긴다
- 미리 모형을 학습하지 않는다
정답 보기
3번 k 가 클수록 과대적합이 생긴다
k 가 작을수록 과대적합, 클수록 과소적합이다.
Q3. SVM 에서 결정 경계에 가장 가까이 있는 데이터 점은?
- 서포트 벡터
- 이상값
- 중심점
- 잎 노드
정답 보기
1번 서포트 벡터
이 점들이 마진과 경계를 정한다.
Q4. SVM 의 커널 함수가 하는 일은?
- k 를 정한다
- 결측값을 채운다
- 데이터를 고차원 공간으로 옮겨 나눌 수 있게 한다
- 데이터를 저차원으로 줄인다
정답 보기
3번 데이터를 고차원 공간으로 옮겨 나눌 수 있게 한다
직선으로 나눌 수 없는 데이터를 고차원에서 나눈다.
Q5. 변수들이 범주 안에서 서로 독립이라고 가정하는 분류기는?
- SVM
- k-NN
- 나이브 베이즈
- 랜덤 포레스트
정답 보기
3번 나이브 베이즈
'나이브(순진한)' 가정이 바로 독립 가정이다.
Q6. '두 범주 사이의 간격을 최대화하는 초평면으로 분류'하는 알고리즘은?
- 나이브 베이즈
- 로지스틱 회귀
- SVM
- k-NN
정답 보기
3번 SVM
마진 최대화가 SVM 의 핵심이다.
헷갈리기 쉬운 O·X
k-NN 은 학습 단계에서 복잡한 모형을 미리 만들어 둔다.
정답 보기
X 데이터를 저장해 두었다가 예측할 때 계산하는 게으른 학습이다.
SVM 의 서포트 벡터는 결정 경계에 가장 가까이 있는 점이다.
정답 보기
O
SVM 의 커널 함수는 고차원 데이터를 저차원으로 바꿔 계산을 단순화한다.
정답 보기
X 저차원을 고차원으로 옮기는 효과를 낸다.