데싸 이모저모/머신러닝

머신러닝 | 분류(Classification) 알고리즘

shchannel 2025. 5. 29. 09:54

 

지도학습의 대표적인 유형인 분류(Classification)는 학습 데이터로 주어진 데이터의 피처와 레이블값(결정 값, 클래스 값)을

머신러닝 알고리즘으로 학습해 모델을 생성하고, 이렇게 생성된 모델에 새로운 데이터 값이 주어졌을 때

미지의 레이블 값을 예측하는 것이다.

이러한 분류는 다양한 머신러닝 알고리즘으로 구현할 수 있다.

 

오늘은 대표적인 분류 알고리즘에 대하여 알아본 것을 간단히 정리하려고 한다.


 

1. Naive Bayes(나이브 베이즈)

나이브 베이즈

나이브 베이즈는 베이즈 이론에 기반한 통계적 분류 알고리즘이다.

 

과거에 발생한 사건의 확률을 바탕으로 새로운 사건의 결과를 예측하는 방식이며,

각 특징(피처)들이 독립적이라는 가정을 전제로 한다.

 

계산이 빠르고 단순한 장점이 있다.

 

 

 

2. Logistic Regression(로지스틱 회귀)

이름은 회귀지만, 분류 문제에 주로 사용되는 알고리즘이다.

독립변수와 종속변수의 선형 관계성을 바탕으로,

결과가 특정 클래스에 속할 확률(0~1)을 예측한다.

 

확률이 일정 기준을 넘으면 하나의 클래스로 분류한다.

따라서 이진 분류 문제에서 자주 쓰이며 해석이 쉽고 직관적이다.

 

 

 

 

3. Decision Tree(결정 트리)

의사 결정 나무

결정 트리는 데이터 균일도에 따른 규칙 기반으로,

데이터의 특징을 기준으로 조건문을 따라가며 분류하는 구조이다.

즉, 규칙에 따라 분할되며 각각의 서브 트리(Sub Tree)를 생성한다.

 

각 분기점에서 특정 조건에 따라 데이터를 나누고,

최종적으로 리프 노드(Leaf Node)에 도달하면 해당 클래스가 결정된다.

 

단순하고 이해하기 쉽지만, 트리의 깊이(depth)가 깊어질수록 과적합(overfitting)이 발생하고 성능 저하의 가능성이 있어 주의가 필요하다.

 

 

 

4. Random Forest(랜덤 포레스트)

랜덤 포레스트

랜덤 포레스트는 여러 개의 결정 트리를 조합하여 결과를 도출하는 앙상블 학습 방법이다.

 

여러 트리의 예측을 평균 또는 다수결로 결합하여

더 안정적이고 과적합에 덜 민감한 예측을 가능하게 하므로

트리 기반 모델의 단점을 보완한다.

 

 

 

 

 

5. Support Vector Machine(SVM, 서포트 벡터 머신)

서포트 벡터 머신

SVM은 개별 클래스 간의 최적 경계선(최대 분류 마진)을 찾아 데이터를 분류한다.

트레이닝 데이터셋들을 최대한의 공백(margin)이 남도록 나누는 알고리즘을 통하여 클래스를 분류하는 최적의 라인을 찾아내는 원리이다.

적은 양의 데이터에 특히 강하지만, 데이터가 많고 복잡하면 속도가 느려질 수 있다.

 

 

 

 

 

 

6. K-Nearest Neighbors(KNN, 최근접 이웃 알고리즘)

KNN

KNN은 주변 데이터들과의 거리를 기반으로 분류를 수행하는 알고리즘이다.

주어진 데이터의 주변 이웃 데이터들의 특징을 파악하고

가장 유사한 데이터 그룹에 포함되도록 하는 방식이다.

즉, 새로운 데이터가 들어오면 가장 가까운 K개의 데이터를 보고 다수의 클래스를 선택한다.

 

 

 

 

 

 

7. Ensemble(앙상블 기법)

앙상블 방식

앙상블 학습(Ensemble Learning)은 하나의 모델이 아닌 여러 모델을 결합해 더 좋은 성능을 얻는 기법이다.

서로 다른 관점을 가진 모델들이 모여 협업하듯 예측을 수행하기 때문에,

일반적으로 단일 모델보다 더 안정적이고 정확한 결과를 도출할 수 있다.

 

앙상블 기법은 학습 방식(병렬/순차)과 사용되는 모델의 다양성(동질/이질)에 따라 여러 종류로 나뉜다.

이 관점들을 기반으로 하는 대표적인 앙상블 기법은 아래와 같다.

✔️ Voting(보팅)

  • Parallel / Homogeneous 또는 Heterogeneous 방식
  • 가장 직관적인 앙상블 방식으로, 각 모델의 예측 결과를 투표에 부쳐 다수결로 최종 결과를 정하는 방법이다.

종류

  • Hard Voting: 각 모델의 예측 클래스 중 다수결로 결정
  • Soft Voting: 각 모델의 예측 확률(Confidence)을 평균내고 가장 높은 확률을 가진 클래스를 선택
  • Weighted Voting: 특정 모델에게 더 높은 가중치를 부여하여 영향력을 조절

🔧 Scikit-learn에서는 VotingClassifier로 구현 가능하다.

 

✔️ Bagging(배깅)

  • Parallel / Homogeneous 방식
  • 동일한 알고리즘을 사용하되, 입력 데이터를 다르게 샘플링하여 여러 모델을 학습시킨다.
  • 대표 사례: Random Forest(랜덤 포레스트)

작동 방식

  • 원본 데이터에서 중복을 허용한 샘플링(bootstrap)으로 여러 데이터셋을 생성
  • 각 데이터셋으로 동일한 모델을 학습
  • 예측 결과를 평균 또는 다수결로 통합

🔧 Scikit-learn의 BaggingClassifier로 구현 가능하다.

 

✔️ Boosting (부스팅)

  • Sequential / Homogeneous 방식
  • 이전 모델이 틀린 데이터에 더 집중해서 다음 모델을 학습시키는 방식이다.
  • 대표 라이브러리: XGBoost, LightGBM

작동 방식

  1. 첫 번째 모델을 학습
  2. 이 모델이 틀린 샘플에 가중치를 두어 두 번째 모델을 학습
  3. 계속해서 오류를 줄이는 방향으로 모델을 추가 학습
  4. 마지막에 모든 모델을 가중 평균하여 최종 예측

✔️ Stacking (스태킹)

  • Parallel / Heterogeneous 방식
  • 서로 다른 모델들을 조합하고, 이들의 예측값을 바탕으로 최종 예측을 위한 메타 모델(Meta Learner)을 학습시킨다.

작동 방식

  1. 여러 모델로 예측 → 예측 결과들을 모아서 새로운 데이터셋 구성
  2. 이 예측값들을 입력값으로 사용하여 최종 예측 모델(메타 모델)을 학습
  3. 최종 결과 도출

🔧 Scikit-learn의 StackingClassifier로 구현 가능하다.

 

 💡 정리

알고리즘  특징 요약 주의할 점
Naive Bayes 확률 기반, 텍스트 분류에 강함 독립성 가정이 강함
Logistic Regression 확률 기반 이진 분류 선형 관계 가정
Decision Tree 조건 분기, 직관적 구조 과적합 위험 있음
Random Forest 다수의 트리 조합 비교적 느릴 수 있음
SVM 최대 margin 분리 고차원 가능, 느릴 수 있음
KNN 거리 기반 단순 분류 계산 비용 높음
Ensemble 여러 모델 결합 구조가 복잡하며 느릴 수 있음

 

✎ 마무리

이후 실습에서 모든 분류 모델을 사용해 보지는 않았지만,
대표적인 몇 가지 모델을 적용해 가며 그 성능을 비교해 보았다.

각 모델의 수학적 원리를 모두 이해하기는 어렵고, 반드시 꼭 그럴 필요가 있지는 않을 것이다.
하지만 모델이 어떤 원리와 목적에 기반하여 작동하는지 대략적으로 이해하고 있으면,
문제 상황에 맞는 적절한 모델을 선택하고 적용하는 데 큰 도움이 될 것이라 생각하여 모델에 대하여 간략히 정리해 보았다.

 

 


 

이미지 출처

- 나이브 베이즈

- 로지스틱 회귀

- 결정 트리

- 랜덤 포레스트

- 서포트 벡터 머신

- KNN

- 앙상블

 

참고 자료

 

파이썬 머신러닝 완벽 가이드(개정2판): 다양한 캐글 예제와 함께 기초 알고리즘부터 최신 기법

자세한 이론 설명과 파이썬 실습을 통해 머신러닝을 완벽하게 배울 수 있습니다! 《파이썬 머신러닝 완벽 가이드》는 이론 위주의 머신러닝 책에서 탈피해, 다양한 실전 예제를 직접 구현해 보

wikibook.co.kr

 

 

- 앙상블 기법: https://www.ibm.com/think/topics/ensemble-learning