4단원: 머신러닝 알고리즘

k-NN부터 SVM까지, 머신러닝의 핵심 분류 알고리즘들을 탐험합니다.
각 알고리즘의 원리를 시각적으로 이해하고 강점과 약점을 비교 분석해 봅시다.

🐧 탐험 1: k-NN (k-최근접 이웃)

"친구를 보면 나를 안다!" 가장 가까운 k개의 이웃을 보고 다수결로 소속 그룹을 결정하는 직관적인 알고리즘입니다.

k-NN의 핵심 특징

  • 원리: 새로운 데이터 주변의 가장 가까운 k개 이웃의 투표(다수결)로 클래스를 결정합니다.
  • 스케일링 필수: 거리 기반 알고리즘이므로, 특징 간 단위 차이(예: kg vs cm)를 없애는 스케일링이 성능에 결정적인 영향을 미칩니다. (정확도 76% → 98%)
  • 'k'의 중요성: 참조할 이웃의 수 'k'는 사용자가 정하는 중요한 하이퍼파라미터입니다.
핵심 요약: k-NN은 단순하고 직관적이지만, 거리 기반이므로 데이터 스케일링이 필수적입니다.

🌳 탐험 2: 의사결정트리

"밤하늘의 스무고개 놀이!" 연속된 질문을 통해 데이터의 정체를 밝혀내고, 그 과정을 명확하게 보여줍니다.

가장 효율적인 질문 찾기

1

Q: 별의 온도는 20,000K보다 높은가?

→ YES / NO 그룹으로 분할

2

Q: 절대 등급은 10보다 높은가?

→ 더 세부 그룹으로 분할

의사결정트리의 핵심 특징

  • 설명 가능성: 모델의 결정 과정을 나무 구조로 명확하게 보여주어, 판단 근거를 이해하기 매우 쉽습니다.
  • 스케일링 불필요: 각 특징을 독립적인 질문으로 판단하므로 단위가 달라도 문제없습니다.
  • 과적합 위험: 훈련 데이터에 너무 잘 맞춰져, 새로운 데이터에 대한 성능이 떨어질 수 있습니다. (가지치기 등으로 제어 필요)
핵심 요약: 의사결정트리는 설명 가능성이 매우 높지만, 과적합에 취약합니다.

🌲 탐험 3: 랜덤 포레스트

"집단 지성의 힘!" 여러 개의 의사결정트리(나무)를 무작위로 생성하여 '숲'을 이루고, 결과를 종합하여 더 정확하고 안정적인 예측을 합니다.

랜덤 포레스트의 핵심 특징

  • 앙상블 학습: 여러 약한 학습기(트리)를 결합하여 하나의 강력한 학습기를 만드는 기법입니다.
  • 핵심 기술: 배깅(Bagging)랜덤 노드 최적화를 통해 각 트리의 다양성을 확보합니다.
  • 과적합 방지: 여러 트리의 결과를 종합(투표)하므로, 단일 트리의 과적합 오류를 상쇄시켜 안정적인 성능을 보입니다.
핵심 요약: 랜덤 포레스트는 여러 트리의 '집단 지성'으로 과적합을 줄여 높은 정확도를 보이는 강력한 앙상블 모델입니다.

➖ 탐험 4: 서포트 벡터 머신 (SVM)

"최적의 경계선을 찾아라!" '줄다리기 심판'처럼 두 그룹 사이에 '가장 넓은 길(마진)'을 만들어 경계선을 명확히 하는 방식으로 분류합니다.

SVM의 핵심 특징

  • 마진 최대화: 두 클래스 사이의 간격(마진)을 최대로 넓혀, 새로운 데이터에 대한 분류 안정성을 높입니다.
  • 서포트 벡터: 마진의 경계에 위치하여 결정 경계를 '지지'하는 가장 중요한 데이터 포인트들입니다.
  • 커널 기법: 직선으로 나눌 수 없는 복잡한 데이터를 고차원으로 보내 해결하는 강력한 기술입니다.
핵심 요약: SVM은 '마진 최대화'를 통해 견고한 분류 성능을 보이며, 스케일링이 필수입니다.

📊 최종 비교: 주요 알고리즘 한눈에 보기

각 알고리즘은 저마다의 강점과 약점을 가집니다. 문제의 성격에 맞는 최적의 도구를 선택하는 것이 진정한 전문가의 역량입니다.

핵심 요약: 각 알고리즘의 특징을 이해하고, 데이터의 종류, 문제의 복잡성, 모델의 설명 가능성 요구 등 다양한 요소를 고려하여 최적의 알고리즘을 선택하는 것이 중요합니다.