컴퓨터과학 챕터 2 약 7분

Ch2. 빅데이터 분석기사 — 머신러닝 알고리즘과 모델 평가

O
OIYO 편집부 기여자
2/5

머신러닝 학습 유형 개요

머신러닝은 데이터에서 패턴을 자동으로 학습하여 예측·분류·군집화를 수행하는 기법입니다. 빅데이터 분석기사 시험에서는 지도학습과 비지도학습의 구분, 그리고 각 알고리즘의 원리와 적용 상황을 명확히 이해해야 합니다.

머신러닝 학습 유형:

지도학습 (Supervised Learning)
├── 분류 (Classification): 이산형 출력 (스팸/정상, 양성/음성)
└── 회귀 (Regression): 연속형 출력 (주가, 기온 예측)

비지도학습 (Unsupervised Learning)
├── 군집화 (Clustering): 유사한 데이터 묶기
├── 차원축소 (Dimensionality Reduction): PCA, t-SNE
└── 연관 규칙 (Association Rule): 장바구니 분석

강화학습 (Reinforcement Learning)
└── 에이전트가 보상·벌점을 통해 최적 행동 학습

지도학습: 회귀 알고리즘

선형회귀 (Linear Regression)

연속형 종속변수와 독립변수 사이의 선형 관계를 모델링합니다.

단순선형회귀:
y = β₀ + β₁x + ε

다중선형회귀:
y = β₀ + β₁x₁ + β₂x₂ + ... + βₙxₙ + ε

where:
y  = 종속변수(예측값)
β₀ = y절편 (intercept)
β₁ = 기울기 (coefficient)
ε  = 오차항 (error term)

최소제곱법(OLS): 잔차(실제값 - 예측값)의 제곱합을 최소화하는 계수를 구하는 방법.

선형회귀 가정(LINE):

  • Linearity: 선형 관계
  • Independence: 잔차의 독립성
  • Normality: 잔차의 정규성
  • Equal Variance: 등분산성(Homoscedasticity)

지도학습: 분류 알고리즘

로지스틱 회귀 (Logistic Regression)

이름에 ‘회귀’가 들어가지만 분류 알고리즘입니다. 시그모이드 함수로 확률을 출력합니다.

로지스틱 함수(Sigmoid):
P(y=1|x) = 1 / (1 + e^(-z))
where z = β₀ + β₁x₁ + β₂x₂ + ...

출력값 범위: (0, 1) → 0.5 기준으로 클래스 분류

로그 오즈비 (Log-odds / Logit):
log(P/(1-P)) = β₀ + β₁x₁ + ...
  • 해석이 쉽고 훈련 속도가 빠름
  • 선형 결정 경계(Linear Decision Boundary)
  • 클래스 불균형에 민감

의사결정나무 (Decision Tree)

데이터를 조건부 규칙에 따라 재귀적으로 분할하여 트리 구조를 형성합니다.

예시 구조:
              [나이 < 30?]
             /           \
         예(Yes)          아니오(No)
          /                  \
    [소득 > 500?]         [구매=No]
    /        \
구매=Yes   구매=No

분할 기준:

정보이득(Information Gain) = 엔트로피 감소량
엔트로피(Entropy) = -Σ p_i × log₂(p_i)
→ 불순도가 가장 많이 감소하는 방향으로 분할

지니 불순도(Gini Impurity) = 1 - Σ p_i²
→ CART 알고리즘에서 사용 (scikit-learn 기본값)
  • 해석 용이성이 가장 높은 알고리즘
  • 과적합(overfitting) 위험 높음 → 가지치기(Pruning) 필요
  • 범주형·연속형 변수 모두 처리 가능

랜덤포레스트 (Random Forest)

여러 의사결정나무를 **앙상블(배깅)**하여 예측 성능과 안정성을 높입니다.

랜덤포레스트 핵심 아이디어:
1. 부트스트랩 샘플링: 훈련 데이터에서 복원추출로 여러 서브셋 생성
2. 특성 무작위 선택: 각 분할 시 전체 특성 중 무작위 부분 집합만 사용
3. 다수결 투표: 개별 트리 예측 결과를 집계하여 최종 예측
  • 의사결정나무보다 과적합 위험 낮음
  • 특성 중요도(Feature Importance) 산출 가능
  • 훈련/예측 속도가 비교적 느림
  • 해석가능성(설명력)은 낮아짐

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

클래스 간 마진(Margin)을 최대화하는 결정 경계(Hyperplane)를 찾는 알고리즘입니다.

마진(Margin) = 두 클래스의 서포트 벡터 간 거리
→ 이 마진을 최대화하는 초평면을 찾는 것이 목표

서포트 벡터(Support Vectors):
→ 결정 경계에 가장 가까운 훈련 샘플들
→ 이 점들만이 경계를 결정함

커널 트릭(Kernel Trick): 비선형 데이터를 고차원 공간으로 매핑하여 선형 분리 가능하게 만드는 기법.

주요 커널 함수:
- 선형(Linear): K(x, z) = xᵀz
- 다항(Polynomial): K(x, z) = (xᵀz + c)^d
- RBF(Gaussian): K(x, z) = exp(-γ||x-z||²)  ← 가장 많이 사용

비지도학습: 군집화 알고리즘

K-means 클러스터링

데이터를 K개의 군집으로 나누는 가장 대표적인 군집화 알고리즘입니다.

K-means 알고리즘 절차:
1. K개의 초기 중심점(centroid) 무작위 설정
2. 각 데이터 포인트를 가장 가까운 중심점 군집에 배정
3. 각 군집의 새로운 중심점 계산 (평균값)
4. 중심점 변화가 없을 때까지 2-3 반복

군집 간 거리: 유클리디안 거리 주로 사용
d(x, y) = √(Σ(xi - yi)²)

K 값 결정: 엘보우 방법(Elbow Method) 사용

Within-Cluster Sum of Squares (WCSS)를 K별로 계산
→ WCSS 감소폭이 급격히 줄어드는 "팔꿈치(elbow)" 지점의 K 선택

K-means의 한계:

  • K를 사전 지정해야 함
  • 원형(Spherical) 군집에 적합 (복잡한 형태의 군집 취약)
  • 이상치 영향에 민감

모델 평가 지표

분류 모델 평가

혼동행렬 (Confusion Matrix):

                예측: 양성(Positive)    예측: 음성(Negative)
실제: 양성      TP (True Positive)      FN (False Negative)
실제: 음성      FP (False Positive)     TN (True Negative)

주요 평가 지표:

정확도(Accuracy)  = (TP + TN) / (TP + FP + FN + TN)
                  → 전체 중 올바르게 예측한 비율

정밀도(Precision) = TP / (TP + FP)
                  → 양성 예측 중 실제 양성 비율
                  → "예측한 것이 맞을 확률"

재현율(Recall)    = TP / (TP + FN)
                  → 실제 양성 중 양성으로 예측한 비율
                  → "놓치지 않을 확률"

F1 Score         = 2 × (Precision × Recall) / (Precision + Recall)
                  → 정밀도와 재현율의 조화 평균

정밀도 vs 재현율 트레이드오프:

  • 암 진단: 재현율 우선 (양성을 놓치면 치명적)
  • 스팸 필터: 정밀도 우선 (정상 메일을 스팸으로 분류하면 큰 손실)

ROC Curve & AUC:

ROC Curve: FPR(x축) vs TPR(y축) 플롯
AUC(Area Under Curve): 0.5 = 무작위, 1.0 = 완벽한 분류
AUC ≥ 0.9: 우수 / 0.7-0.9: 양호 / 0.5-0.7: 미흡

회귀 모델 평가

MAE (Mean Absolute Error)  = Σ|yi - ŷi| / n
  → 이상치에 덜 민감, 해석 쉬움

MSE (Mean Squared Error)   = Σ(yi - ŷi)² / n
  → 이상치에 민감 (큰 오차에 큰 페널티)

RMSE (Root MSE)            = √MSE
  → MSE에 제곱근 → 원래 단위로 해석 가능

R² (결정계수)               = 1 - (SSR / SST)
  → 모델이 데이터 분산을 설명하는 비율 (0~1, 높을수록 좋음)

과적합 방지 기법

교차검증 (Cross-Validation)

K-Fold 교차검증:
1. 데이터를 K개의 폴드(fold)로 분할
2. K-1개 폴드로 훈련, 나머지 1개로 검증
3. K번 반복하여 평균 성능 계산

일반적으로 K=5 또는 K=10 사용
→ 더 신뢰할 수 있는 모델 성능 추정 가능

정규화 (Regularization)

과적합된 모델은 계수(가중치)가 매우 커지는 경향이 있습니다. 정규화는 계수 크기에 페널티를 부여합니다.

Ridge(L2 정규화): 비용함수 + λ × Σβⱼ²
  → 계수를 0에 가깝게 축소, 0이 되지는 않음
  → 다중공선성 문제 완화

Lasso(L1 정규화): 비용함수 + λ × Σ|βⱼ|
  → 계수를 정확히 0으로 만들 수 있음 → 변수 선택 효과
  → 희소(sparse) 모델 생성

ElasticNet: Ridge + Lasso 결합

기타 과적합 방지 기법

  • 조기 종료(Early Stopping): 검증 손실이 증가하면 훈련 중단
  • 드롭아웃(Dropout): 신경망에서 무작위로 뉴런 비활성화
  • 데이터 증강(Data Augmentation): 이미지 반전·회전 등으로 학습 데이터 늘리기
  • 특성 선택(Feature Selection): 불필요한 특성 제거로 모델 단순화

앙상블 학습 심화

배깅 (Bagging, Bootstrap Aggregating)

→ 복원추출로 여러 서브셋 생성 후 각각 학습
→ 예측값 평균(회귀) 또는 다수결(분류)
→ 분산(Variance) 감소 효과
→ 대표 알고리즘: 랜덤포레스트

부스팅 (Boosting)

→ 이전 모델의 오류에 가중치를 높여 순차적 학습
→ 편향(Bias) 감소 효과
→ 배깅보다 성능 높지만 과적합 위험 증가

대표 알고리즘:
- AdaBoost: 틀린 샘플에 더 높은 가중치 부여
- Gradient Boosting (GBM): 잔차를 예측하는 방향으로 순차 학습
- XGBoost / LightGBM: GBM의 최적화 버전 (빠르고 정확)

스태킹 (Stacking)

→ 여러 모델의 예측값을 메타 모델의 입력으로 사용
→ 가장 복잡한 앙상블 기법
→ 현업 데이터 분석 경진대회(Kaggle 등)에서 자주 사용

핵심 개념 카드

혼동행렬 4요소 ★★★★★ : TP/FP/FN/TN 위치 암기 필수. 정밀도 = TP/(TP+FP), 재현율 = TP/(TP+FN). 암기 포인트: 정밀도 분모는 “예측 양성” 전체, 재현율 분모는 “실제 양성” 전체

F1 Score ★★★★★ : 정밀도와 재현율의 조화평균. 클래스 불균형 데이터에서 Accuracy 대신 사용. 암기 포인트: F1 = 2×P×R/(P+R) — 조화평균은 작은 값에 더 민감

과적합 vs 과소적합 ★★★★★ : 과적합 = 훈련 정확도↑, 검증 정확도↓ (분산 높음). 과소적합 = 둘 다 낮음 (편향 높음). 해결: 정규화·교차검증·데이터 증강. 암기 포인트: 편향-분산 트레이드오프 그래프 이미지 떠올리기

배깅 vs 부스팅 ★★★★☆ : 배깅 = 병렬 학습, 분산 감소, 랜덤포레스트. 부스팅 = 순차 학습, 편향 감소, XGBoost. 암기 포인트: 배(깅)=병렬, 부(스팅)=순차

K-means 한계 ★★★☆☆ : K 사전 지정 필요, 구형 군집 가정, 이상치에 민감. 해결: K-medoids, DBSCAN 등 대안 알고리즘.


실전 퀴즈

Q1. 암 진단 모델에서 가장 중요한 평가 지표는 무엇이며, 그 이유는?

재현율(Recall). 실제 암 환자(양성)를 놓치는 것(FN, False Negative)이 건강한 사람을 양성으로 분류하는 것(FP)보다 훨씬 위험합니다. 재현율 = TP/(TP+FN)은 실제 양성 중 올바르게 탐지한 비율이므로, 이 값을 최대화해야 환자를 빠짐없이 찾아낼 수 있습니다.

Q2. 랜덤포레스트가 의사결정나무보다 일반적으로 성능이 좋은 이유를 설명하라.

랜덤포레스트는 **배깅(Bootstrap Aggregating)**과 특성 무작위 선택을 결합합니다. 개별 트리는 복원추출된 서브셋과 무작위 특성 부분집합으로 학습하여 트리 간 상관관계를 줄입니다. 여러 트리의 예측을 평균하거나 다수결로 집계하면 분산(Variance)이 감소하여 단일 의사결정나무보다 일반화 성능이 높아집니다.

Q3. Ridge와 Lasso 정규화의 가장 큰 차이점은?

**Lasso(L1)**는 일부 계수를 정확히 0으로 만들어 변수 선택(Feature Selection) 효과를 제공합니다. **Ridge(L2)**는 계수를 0에 가깝게 축소하지만 완전히 0이 되지는 않아 모든 변수를 유지합니다. 따라서 변수가 많고 일부만 중요할 때는 Lasso, 다중공선성이 있을 때는 Ridge가 유리합니다.

O

OIYO 편집부

Content Editor

지식 인큐베이터이자 전문 콘텐츠 크리에이터. 경영, 경제, 법률 및 실생활에 유용한 실무/자격증 중심의 깊이 있는 정보를 연구하고 공유합니다.