머신러닝의 분류 (Classification)
1) 분류의 개념
- 분류(Classification)란
입력 데이터(특징 벡터 x)를 미리 정의된 여러 클래스 중 하나로 구분하는 문제를 말한다.
이 과정에서 정답 레이블(y)이 주어지므로 지도학습(Supervised Learning)에 속한다. - 입출력 관계
- 입력: x (특징 벡터) 출력: y ∈ {C1, C2, …, CM} (M개의 클래스 중 하나)
- 분류기의 종류
- 베이즈 분류기 (Bayes Classifier)
- K–최근접이웃 분류기 (K-Nearest Neighbors, K–NN)
- 로지스틱 회귀 (Logistic Regression)
- 결정 트리 (Decision Tree)
- 랜덤 포레스트 (Random Forest)
- 서포트 벡터 머신 (SVM)
- 인공신경망 (Neural Network)
- 접근 방식에 따른 구분
- 확률 기반 분류기 (Probabilistic Approach)
→ 각 클래스에 속할 확률을 계산
→ 예: 베이즈 분류기 - 데이터 기반 분류기 (Data-driven Approach)
→ 데이터 간의 거리/유사도를 기준으로 결정
→ 예: K–최근접이웃 분류기
- 확률 기반 분류기 (Probabilistic Approach)
2) 베이즈 분류기 (Bayes Classifier)
(1) 기본 원리
- 주어진 입력 x가 클래스 Ck에 속할 사후확률 P(Ck|x)을 계산하여
그 확률이 가장 큰 클래스로 분류한다. - y(x) = argmax_i P(C_i | x)
- 베이즈 정리(Bayes’ Theorem)여기서
- P(Ck): 사전확률 (해당 클래스가 사전에 발생할 확률)
- p(x | Ck): 가능도 (클래스 Ck일 때 데이터 x가 나올 확률)
- p(x): 정규화 항 (모든 클래스에 대한 총 확률)
- P(Ck | x) = [ p(x | Ck) * P(Ck) ] / p(x)
(2) 분류 과정
- 학습 데이터로부터 각 클래스의 확률분포함수 p(x|Ck)를 추정
- 테스트 데이터 x를 입력하면 각 클래스에 대한 사후확률 P(Ck|x) 계산
- 사후확률이 가장 큰 클래스로 할당
(3) 우도비 분류(Likelihood Ratio Test)
- 두 클래스 C1, C2에 대해서는 다음의 비율로 판정할 수 있다.
- g_LRT(x) = [ p(x|C1) * P(C1) ] / [ p(x|C2) * P(C2) ]
- g_LRT(x) > 1이면 C1,
g_LRT(x) < 1이면 C2로 분류된다.
(g_LRT(x) = 1인 지점이 결정경계)
(4) 결정경계와 클래스 비율의 영향
- 두 클래스의 데이터가 같은 비율로 존재할 때
→ 두 확률밀도함수 곡선이 만나는 지점이 오류가 최소인 결정경계(Decision Boundary)가 된다. - 한 클래스의 데이터가 더 많으면
→ 그 클래스의 사전확률 P(Ck)가 커지므로
결정경계가 반대쪽으로 이동하여 해당 클래스의 영역이 넓어진다.
(5) 가우시안 베이즈 분류기 (Gaussian Bayes Classifier)
- 각 클래스의 확률밀도함수 p(x|Ck)를 가우시안 분포(정규분포)로 가정:
- μk: 클래스 Ck의 평균 벡터
- Σk: 클래스 Ck의 공분산 행렬
- p(x|Ck) = (1 / (2π)^(n/2) |Σk|^(1/2)) * exp( -0.5 * (x - μk)^T * Σk^(-1) * (x - μk) )
(6) 공분산 행렬의 형태에 따른 결정경계 변화
공분산 형태 특징 결정경계 형태 설명
| Σk = σ²I (모든 클래스 동일, 단위행렬 상수배) | 최소거리 분류기(Minimum Distance Classifier) | 직선(또는 평면) | 모든 방향에서 동일한 분포 |
| Σk = Σ (모든 클래스 동일, 일반행렬) | 마할라노비스 거리(Mahalanobis Distance) | 선형(직선) | 공분산 구조 반영 |
| Σk ≠ Σj (클래스별 상이) | 각 클래스마다 다른 분포 | 비선형(곡선) | 복잡한 데이터 표현 가능하지만 과적합 위험 |
(7) 특징 요약
- 장점
- 확률적 접근으로 이론적 근거가 명확
- 학습 후에는 평균(μ), 공분산(Σ)만 저장하면 됨 → 예측 빠름
- 단점
- 데이터 분포가 가정(정규분포)과 다르면 성능 저하
- 공분산 추정 시 데이터 수가 적으면 추정오차 증가
3) K–최근접이웃 분류기 (K–Nearest Neighbors, K–NN)
(1) 기본 개념
- 최근접이웃(Nearest Neighbor)
테스트 데이터 x와 가장 가까운 학습 데이터 하나를 찾아
그 데이터의 클래스 레이블을 그대로 할당한다.
(K=1인 경우) - K–최근접이웃(K–NN)
입력 x로부터 가장 가까운 K개 학습 데이터를 찾은 후,
그중 다수결(Majority Vote)로 클래스를 결정한다.(I(condition): 참이면 1, 거짓이면 0) - y(x) = argmax_{Ck} Σ_{i ∈ N_k(x)} I(y_i = Ck)
(2) 수행 단계
- 입력 데이터 x와 모든 학습 데이터 간의 거리 계산
(예: 유클리디안 거리, 맨해튼 거리, 마할라노비스 거리 등) - 가장 가까운 K개 데이터 선택
- 그들의 클래스 중 가장 많이 등장한 클래스로 분류
(3) 거리 함수의 예
- 유클리디안 거리
- d(x, xi) = sqrt( Σ_j (x_j − xij)² )
- 맨해튼 거리
- d(x, xi) = Σ_j |x_j − xij|
- 마할라노비스 거리
- d_M(x, μ) = sqrt( (x − μ)^T Σ^(-1) (x − μ) )
(4) 설계 고려사항
- K 값 선택
- K=1 → 노이즈에 민감 (과적합)
- K가 너무 큼 → 경계가 흐려짐 (과소적합)
- ⇒ 교차검증(Cross Validation)을 통해 적절한 K를 선택
- 거리 함수 선택
- 데이터의 특성(스케일, 분산)에 따라 성능 차이가 큼
- 표준화(정규화) 과정을 통해 각 특징의 단위 차이를 제거해야 함
(5) 특징 요약
- 장점
- 분포 가정이 필요 없음
- 복잡하고 비선형적인 데이터 구조에도 잘 작동
- 단점
- 모든 학습 데이터를 저장해야 함 → 메모리 부담
- 새로운 입력마다 전체 데이터와 거리 계산 → 예측 속도 느림
4) 두 분류기의 비교 요약
구분 가우시안 베이즈 분류기 K–최근접이웃 분류기
| 접근 방식 | 확률 기반 | 데이터 기반 |
| 데이터 분포 가정 | 각 클래스가 가우시안(정규분포)을 따른다고 가정 | 분포 가정 없음 |
| 학습 시 저장 | 평균(μ), 공분산(Σ)만 저장 | 전체 학습 데이터 저장 |
| 예측 시 계산 | 확률(판별함수) 계산 | 거리 계산 |
| 결정경계 형태 | 주로 선형(또는 약한 곡선) | 매우 비선형 |
| 장점 | 빠른 예측, 수학적으로 명확 | 복잡한 분포에 강함 |
| 단점 | 분포 가정 오류 시 성능 저하 | 계산량, 메모리 부담 |
5) 핵심 요약
- 분류(Classification): 입력 데이터를 미리 정의된 클래스 중 하나로 구분하는 문제.
- 베이즈 분류기: 확률 모델 기반. 사후확률이 가장 큰 클래스로 분류.
- K–NN 분류기: 거리 기반. 주변 이웃의 다수결로 클래스 결정.
- 차이점:
- 베이즈 → 모델 기반 (가우시안 가정)
- K–NN → 메모리 기반 (비모수적, 데이터 직접 사용)
'Python > Machine Learning, ML' 카테고리의 다른 글
| SVM과 커널법 (0) | 2025.10.21 |
|---|---|
| 비지도학습: 군집화 (0) | 2025.10.21 |
| 데이터표현: 특징추출 (0) | 2025.10.21 |
| 지도학습:회귀 (0) | 2025.10.21 |
| 머신러닝 소개 (0) | 2025.10.13 |