Ch2. 빅데이터 분석기사 — 머신러닝 알고리즘과 모델 평가
머신러닝 학습 유형 개요
머신러닝은 데이터에서 패턴을 자동으로 학습하여 예측·분류·군집화를 수행하는 기법입니다. 빅데이터 분석기사 시험에서는 지도학습과 비지도학습의 구분, 그리고 각 알고리즘의 원리와 적용 상황을 명확히 이해해야 합니다.
머신러닝 학습 유형:
지도학습 (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가 유리합니다.
OIYO 편집부
Content Editor지식 인큐베이터이자 전문 콘텐츠 크리에이터. 경영, 경제, 법률 및 실생활에 유용한 실무/자격증 중심의 깊이 있는 정보를 연구하고 공유합니다.