분류·회귀·군집 알고리즘
분류·회귀·군집 문제를 구분하고 선형·로지스틱회귀, kNN, 트리·앙상블, SVM, k-means의 원리를 비교한다.
1. 문제 유형 구분
| 문제 | 출력 | 예시 |
|---|---|---|
| 분류 | 범주·확률 | 사기/정상, 장애유형 |
| 회귀 | 연속 수치 | 응답시간, 매출 |
| 군집 | 유사한 그룹 | 고객 세분화 |
| 순위 | 우선순위·점수 | 추천·검색 결과 |
| 이상탐지 | 정상에서 벗어난 정도 | 침해·센서 이상 |
문제를 잘못 정의하면 좋은 알고리즘을 사용해도 목적에 맞는 결과를 얻지 못한다.
2. 선형회귀
ŷ = β0 + β1x1 + ... + βkxk
입력 특성의 선형 결합으로 연속값을 예측한다.
장점:
- 구조가 단순
- 계수 해석이 쉬움
- 기준모델로 유용
주의:
- 비선형 관계
- 극단값
- 다중공선성
- 잔차 가정
- 과도한 외삽
3. 로지스틱회귀
선형결합을 시그모이드 함수로 변환해 양성 확률을 예측한다.
z = β0 + β1x1 + ...
p = 1 / (1 + e^(-z))
계수의 부호는 다른 조건이 같을 때 해당 특성이 양성 로그오즈에 미치는 방향을 나타낸다. 임계값으로 최종 클래스를 선택한다.
이름에 회귀가 있지만 대표적인 이진 분류 알고리즘이다.
4. k-최근접 이웃(kNN)
새 데이터와 가까운 k개 이웃을 찾아 다수결 또는 평균으로 예측한다.
○ ○ ○
○ 새 점 ★
● ●
● ● ●
k=5일 때 가까운 이웃의 클래스 비율로 결정
장점:
- 단순하고 학습 과정이 거의 없음
- 복잡한 경계 표현 가능
주의:
- 거리척도와 스케일링 영향
- 차원이 커지면 거리 의미 약화
- 데이터가 많으면 예측 비용 증가
- k가 너무 작으면 과적합, 너무 크면 경계가 단순해짐
5. 의사결정나무
특성 기준으로 데이터를 반복 분할한다.
연체횟수 > 2?
├─ 예 → 부도 위험 높음
└─ 아니오 → 소득 < 3000?
├─ 예 → 중간
└─ 아니오 → 낮음
장점:
- 규칙 해석이 쉬움
- 비선형·상호작용 표현
- 스케일링 필요성이 상대적으로 작음
주의:
- 깊은 트리는 과적합
- 작은 데이터 변화에 구조가 크게 바뀔 수 있음
- 불순도 감소만으로 인과를 설명하지 못함
6. 랜덤포레스트와 앙상블
여러 모델을 결합해 일반화 성능을 높인다.
배깅
여러 부트스트랩 표본
├─ Tree 1
├─ Tree 2
├─ Tree 3
└─ ...
↓
다수결·평균
랜덤포레스트는 데이터 표본과 특성 일부를 무작위로 선택해 여러 트리를 만든다.
부스팅
앞 모델이 틀린 사례를 다음 모델이 더 잘 맞히도록 순차적으로 결합한다.
Model 1 → 잔여 오류
↓
Model 2 → 잔여 오류
↓
Model 3
부스팅은 강력하지만 하이퍼파라미터와 노이즈에 민감할 수 있다.
7. SVM
클래스 사이의 간격, 즉 마진을 크게 하는 결정경계를 찾는다.
○ ○ ○ | | ● ● ●
| 경계|
support vectors가 마진을 결정
커널을 이용해 비선형 경계를 표현할 수 있다. 스케일링과 하이퍼파라미터의 영향이 크고, 대규모 데이터에서 학습 비용이 커질 수 있다.
8. 나이브 베이즈
베이즈 정리를 사용하며, 클래스가 주어졌을 때 특성들이 조건부 독립이라는 단순한 가정을 둔다.
P(class | features)
∝ P(class) × Π P(feature_i | class)
가정이 현실과 완전히 맞지 않아도 텍스트 분류 등에서 빠르고 유용할 수 있다.
9. k-means 군집
k개의 중심을 반복 갱신해 각 점을 가장 가까운 중심에 배정한다.
① 중심 k개 초기화
② 각 점을 가까운 중심에 배정
③ 군집별 평균으로 중심 이동
④ 배정이 안정될 때까지 반복
Cluster A: ○○○ 중심 A
Cluster B: ●●● 중심 B
주의:
- k를 미리 정해야 함
- 초기 중심에 따라 결과 달라질 수 있음
- 구형·비슷한 크기 군집에 상대적으로 적합
- 이상치와 스케일에 민감
- 범주형 데이터에 그대로 적용하기 어려움
10. 계층적 군집과 DBSCAN 개념
계층적 군집
가까운 군집을 합치거나 큰 군집을 나누며 덴드로그램을 만든다.
┌──── A
┌───┤
│ └──── B
└──────── C
k를 나중에 선택할 수 있지만 데이터가 크면 계산비용이 커질 수 있다.
DBSCAN
밀도가 높은 영역을 군집으로 보고 희소한 점을 노이즈로 분류한다.
- 군집 수를 미리 정하지 않아도 됨
- 임의 모양 군집 탐지 가능
- 밀도 차이가 크면 설정이 어려움
11. 알고리즘 선택 기준
출력이 수치 → 회귀
출력이 범주 → 분류
레이블 없음 → 군집·차원축소
추가 고려:
데이터 크기
특성 수·형식
선형성
해석 가능성
학습·추론 비용
결측·이상치
불균형
운영 제약
가장 복잡한 모델보다 목표·데이터·운영 조건에 맞고 검증된 모델을 선택한다.
12. 특성 중요도와 설명
트리 기반 중요도, 회귀 계수, 순열 중요도 등은 모델이 예측에 사용한 관계를 설명하는 도구이다.
- 중요도가 높아도 인과관계라는 뜻은 아님
- 상관된 특성끼리 중요도가 나뉠 수 있음
- 학습 데이터 편향을 반영할 수 있음
- 전체 중요도와 개별 예측 설명은 다름
13. 거리·불순도·군집 목적함수 계산
kNN과 k-means는 거리 크기에 민감하다. 두 점 (1,2), (4,6)의 유클리드 거리는 sqrt(3²+4²)=5이다. 한 변수가 천 단위이고 다른 변수가 0~1이면 스케일이 큰 변수가 거리를 지배할 수 있다.
이진 노드에서 양성 비율이 p이면 Gini 불순도는 1-p²-(1-p)²이다. p=0.5일 때 0.5로 가장 크고, 한 클래스만 있으면 0이다. 분할 후 불순도는 자식 표본 수로 가중 평균한다.
k-means는 각 점과 할당 중심 사이 제곱거리 합인 SSE를 줄인다.
할당 단계: 가장 가까운 중심 선택
갱신 단계: 군집별 좌표 평균으로 중심 이동
반복: 할당이 안정되거나 개선이 작을 때까지
14. 나무·앙상블의 차이
단일 결정나무는 해석이 쉽지만 깊어지면 과적합하기 쉽다. 랜덤포레스트는 bootstrap 표본과 무작위 특성 부분집합으로 여러 나무의 상관을 낮추는 배깅 계열이다. 부스팅은 이전 오차를 줄이도록 약한 학습기를 순차적으로 결합한다.
- Bagging: 주로 분산 감소, 병렬 학습이 쉬움
- Boosting: 편향과 오차를 순차 보완, 잡음·하이퍼파라미터에 민감할 수 있음
15. SVM·나이브 베이즈
SVM은 결정경계와 가장 가까운 support vector가 만드는 margin을 크게 하는 방향을 찾는다. 커널은 원래 공간에서 직접 고차원 좌표를 계산하지 않고 내적을 통해 비선형 경계를 표현하는 기법이다.
나이브 베이즈는 클래스가 주어졌을 때 특성들이 조건부 독립이라고 단순화한다.
P(C|x) ∝ P(C) × Π P(xj|C)
확률 곱이 매우 작아지는 수치 언더플로를 줄이기 위해 로그 확률을 더하는 방식이 자주 사용된다.
16. DBSCAN의 상태 판정
- core: 반경
ε안 이웃 수가minPts이상 - border: core의 이웃이지만 자신은 core가 아님
- noise: 어떤 core 군집에도 연결되지 않음
DBSCAN은 군집 수를 미리 정하지 않고 비구형 군집과 잡음을 찾을 수 있지만, 밀도가 크게 다른 군집이 섞이면 하나의 ε로 처리하기 어렵다.
17. 모델 선택의 실무 기준
소량·저차원·국소 패턴 → kNN 후보
비선형·혼합형 변수·설명 필요 → 나무 계열
고차원 희소 텍스트 → 선형모델·선형 SVM 후보
확률적 빠른 기준선 → 나이브 베이즈
구형 군집·평균 중심 의미 있음 → k-means
잡음·비구형 군집 → DBSCAN 후보
확인 문제
- 점 (1,2)와 (4,6)의 유클리드 거리는?
- 이진 노드의 클래스 비율이 0.5일 때 Gini는?
- 랜덤포레스트의 대표 결합 원리는?
- DBSCAN에서 core 이웃이지만 자신은 core가 아닌 점은?
- k-means가 직접 최소화하는 값은?