Ch3. ADsP 데이터분석 준전문가 — 데이터 분석 — 모델링과 알고리즘
기계학습의 분류 체계
**기계학습(Machine Learning)**은 데이터로부터 패턴을 학습해 예측이나 의사결정을 수행하는 알고리즘의 집합입니다. 학습 방식에 따라 크게 세 가지로 분류됩니다.
지도 학습 (Supervised Learning)
정의: 정답(레이블)이 있는 데이터로 학습하는 방식
특징:
- 입력(X)과 출력(Y)의 쌍으로 구성된 훈련 데이터 사용
- 새로운 입력에 대한 출력 예측
- 성능 평가가 명확
종류:
- 분류(Classification): 범주형 출력 예측 (예: 스팸/정상 메일, 질병 유무)
- 회귀(Regression): 연속형 출력 예측 (예: 주가, 매출액)
주요 알고리즘: 의사결정나무, 로지스틱 회귀, SVM, KNN, 랜덤 포레스트, 신경망
비지도 학습 (Unsupervised Learning)
정의: 정답 없이 데이터의 내재된 구조와 패턴을 발견하는 방식
특징:
- 레이블 없는 데이터 사용
- 데이터 탐색 및 패턴 발견에 활용
- 성능 평가가 상대적으로 어려움
종류:
- 군집분석(Clustering): 유사한 데이터끼리 그룹화 (예: 고객 세분화)
- 차원 축소(Dimensionality Reduction): 고차원 데이터를 저차원으로 축소 (예: PCA)
- 연관규칙 분석: 항목 간 연관성 발견 (예: 장바구니 분석)
주요 알고리즘: K-Means, 계층적 군집, DBSCAN, PCA
강화 학습 (Reinforcement Learning)
정의: 환경과의 상호작용을 통해 보상을 최대화하는 정책을 학습
예시: 게임 AI, 자율주행, 로봇 제어
의사결정나무 (Decision Tree)
개념과 원리
의사결정나무는 데이터를 반복적으로 분할하여 트리 구조의 분류/예측 모델을 생성하는 알고리즘입니다.
[연령 < 30?]
/ \
예 아니오
/ \
[소득 < 3000만?] [구매 이력 있음?]
/ \ / \
구매 안함 구매함 구매함 구매 안함
분기 기준: 불순도 지수
의사결정나무는 분기 시 불순도를 최소화하는 방향으로 변수를 선택합니다.
1. 지니 계수 (Gini Index)
- pₖ: k번째 클래스의 비율
- 값이 0에 가까울수록 순수(pure) 노드
- CART 알고리즘에서 사용
예시: [0.5, 0.5] → Gini = 1 - (0.5² + 0.5²) = 0.5 (최대 불순도) 예시: [1.0, 0.0] → Gini = 1 - (1.0² + 0.0²) = 0.0 (완전 순수)
2. 엔트로피 (Entropy)
- ID3, C4.5 알고리즘에서 사용
- 정보 이득(Information Gain) = 부모 엔트로피 - 자식 엔트로피 가중 평균
3. 분산 감소 (Variance Reduction)
회귀 의사결정나무에서 사용. 분할 후 분산이 최대로 감소하는 방향 선택.
주요 알고리즘 비교
| 알고리즘 | 불순도 기준 | 분기 | 특징 |
|---|---|---|---|
| ID3 | 정보 이득(엔트로피) | 다지 분기 | 범주형 변수만 처리 |
| C4.5 | 정보 이득 비율 | 다지 분기 | 연속형 변수, 결측치 처리 |
| CART | 지니 계수 | 이진 분기 | 분류 + 회귀 모두 가능 |
| CHAID | 카이제곱 통계 | 다지 분기 | 범주형 종속변수 |
과적합 방지: 가지치기
의사결정나무는 훈련 데이터에 과적합되기 쉽습니다.
사전 가지치기(Pre-pruning): 트리 성장 중 조건을 설정하여 조기 중단
- 최대 깊이(Max Depth) 제한
- 최소 분기 샘플 수 설정
사후 가지치기(Post-pruning): 완성된 트리를 축소
- 검증 데이터 오류를 최소화하는 방향으로 가지 제거
의사결정나무의 장단점
장점:
- 해석이 용이 (White-box 모델)
- 비선형 관계 처리 가능
- 스케일링 불필요
- 수치형·범주형 변수 모두 처리
단점:
- 과적합에 취약
- 데이터 변화에 불안정 (분산이 큼)
- 연속형 변수에 대한 처리 비효율적
앙상블 기법
여러 모델의 예측을 결합하여 성능을 향상시키는 방법입니다.
배깅 (Bagging, Bootstrap Aggregating)
- 원본 데이터에서 복원 추출로 여러 훈련 세트 생성
- 각각 독립적으로 모델 학습
- 예측값 결합 (분류: 다수결, 회귀: 평균)
- 랜덤 포레스트(Random Forest): 배깅 + 변수 무작위 선택
부스팅 (Boosting)
- 이전 모델이 오분류한 데이터에 가중치를 높여 순차적으로 학습
- 약한 분류기들을 결합해 강한 분류기 생성
- AdaBoost, Gradient Boosting, XGBoost, LightGBM
군집분석 (Clustering)
K-Means 군집분석
가장 대표적인 비지도 학습 알고리즘으로, 데이터를 K개의 군집으로 분류합니다.
알고리즘 순서:
- K개의 중심점(Centroid) 무작위 초기화
- 각 데이터를 가장 가까운 중심점에 할당
- 각 군집의 평균으로 중심점 업데이트
- 중심점 변화가 없을 때까지 2~3 반복
K 값 선택 방법: 엘보우 방법(Elbow Method)
- K에 따른 군집 내 제곱합(SSW) 변화를 그래프로 표시
- 감소 폭이 급격히 줄어드는 “팔꿈치” 지점이 최적 K
K-Means의 한계:
- K를 사전에 지정해야 함
- 구형이 아닌 군집 탐지 어려움
- 이상치에 민감
- 초기 중심점에 따라 결과가 달라짐
계층적 군집분석 (Hierarchical Clustering)
트리 구조(덴드로그램)를 이용해 군집을 형성합니다.
병합 방법(Agglomerative):
- 개별 데이터에서 시작 → 점진적으로 군집 병합 (Bottom-Up)
연결 방법(Linkage):
| 방법 | 설명 | 특징 |
|---|---|---|
| 단일 연결 (Single) | 두 군집 간 가장 가까운 거리 | 사슬형 군집 형성 가능 |
| 완전 연결 (Complete) | 두 군집 간 가장 먼 거리 | 컴팩트한 군집 형성 |
| 평균 연결 (Average) | 두 군집 간 평균 거리 | 균형 잡힌 결과 |
| 와드 연결 (Ward) | 군집 내 분산 최소화 | 크기가 비슷한 군집 형성 |
장점: K 사전 지정 불필요, 덴드로그램으로 군집 구조 시각화 단점: 계산 비용이 큼, 한번 병합하면 취소 불가
DBSCAN
밀도 기반 군집 알고리즘으로, 이상치 탐지에 효과적입니다.
- 핵심 포인트: 반경 ε 내에 최소 MinPts개의 이웃 포인트 존재
- 경계 포인트: 핵심 포인트 반경 내에 있지만 MinPts를 충족하지 못함
- 잡음 포인트(이상치): 어느 군집에도 속하지 않음
주성분분석 (PCA, Principal Component Analysis)
PCA의 목적
차원의 저주(Curse of Dimensionality): 차원이 증가할수록 데이터가 희박해지고 분석이 어려워지는 현상
PCA는 여러 변수를 분산을 최대한 보존하면서 더 적은 수의 주성분으로 변환하는 차원 축소 기법입니다.
PCA 알고리즘
- 데이터 표준화 (평균 0, 표준편차 1)
- 공분산 행렬 계산
- 고유값(Eigenvalue)과 고유벡터(Eigenvector) 계산
- 고유값 크기순으로 정렬
- 상위 k개 고유벡터로 데이터 투영
설명 분산 비율
λᵢ는 i번째 주성분의 고유값. 보통 누적 설명 분산 비율 80~90% 이상을 유지하는 주성분 수 선택
PCA 활용
- 시각화: 고차원 데이터를 2D·3D로 축소해 시각화
- 전처리: 다중공선성 문제 해결
- 잡음 제거: 분산이 낮은 주성분 제거
연관규칙 분석 (Association Rule Mining)
장바구니 분석이라고도 하며, 항목 간의 연관 규칙을 발견합니다.
핵심 지표
지지도(Support): 두 항목이 함께 나타날 확률
신뢰도(Confidence): A를 구매했을 때 B도 구매할 조건부 확률
향상도(Lift): 연관 규칙이 무작위 연관보다 얼마나 더 강한지
- Lift > 1: 양의 연관관계 (함께 구매 경향)
- Lift = 1: 독립적
- Lift < 1: 음의 연관관계
주요 알고리즘: Apriori, FP-Growth
모델 평가 (Model Evaluation)
혼동 행렬 (Confusion Matrix)
분류 모델의 성능을 평가하는 기본 도구입니다.
| 예측: Positive | 예측: Negative | |
|---|---|---|
| 실제: Positive | TP (True Positive) | FN (False Negative) |
| 실제: Negative | FP (False Positive) | TN (True Negative) |
주요 평가 지표
정확도 (Accuracy) 전체 예측 중 올바른 예측의 비율. 클래스 불균형 시 오도될 수 있음.
정밀도 (Precision) Positive로 예측한 것 중 실제 Positive의 비율. “스팸으로 분류한 메일 중 실제 스팸 비율”
재현율 (Recall) = 민감도 (Sensitivity) 실제 Positive 중 올바르게 예측한 비율. “실제 스팸 메일 중 탐지한 비율”
F1 점수 (F1 Score) 정밀도와 재현율의 조화 평균
특이도 (Specificity) 실제 Negative 중 올바르게 Negative로 예측한 비율
정밀도-재현율 트레이드오프
임계값(Threshold)을 높이면 정밀도는 올라가고 재현율은 낮아집니다.
- 암 진단: 재현율 중시 (실제 환자를 놓치면 안 됨)
- 스팸 필터: 정밀도 중시 (정상 메일이 스팸으로 분류되면 안 됨)
ROC 곡선과 AUC
ROC 곡선 (Receiver Operating Characteristic): X축: FPR (False Positive Rate) = 1 - Specificity Y축: TPR (True Positive Rate) = Recall
AUC (Area Under Curve): ROC 곡선 아래 면적
| AUC 값 | 해석 |
|---|---|
| AUC = 1.0 | 완벽한 분류기 |
| AUC = 0.9 이상 | 매우 우수 |
| AUC = 0.7~0.9 | 적절한 수준 |
| AUC = 0.5~0.7 | 보통 |
| AUC = 0.5 | 무작위 분류기 (쓸모없음) |
교차 검증 (Cross-Validation)
모델의 일반화 성능을 평가하기 위해 데이터를 여러 방식으로 분할합니다.
홀드아웃(Hold-out): 훈련/검증/테스트 세트로 분할 (예: 70/15/15)
K-겹 교차 검증(K-Fold CV):
- 데이터를 K개의 폴드로 분할
- K번 반복하며 각 폴드를 검증 세트로 사용
- K개의 성능 지표 평균으로 최종 성능 산출
계층적 K-겹 교차 검증(Stratified K-Fold): 클래스 비율을 유지하며 분할 → 클래스 불균형 시 권장
과적합과 과소적합
| 문제 | 특징 | 해결 방법 |
|---|---|---|
| 과적합 (Overfitting) | 훈련 성능 높고 검증 성능 낮음 | 정규화, 드롭아웃, 더 많은 데이터 |
| 과소적합 (Underfitting) | 훈련·검증 성능 모두 낮음 | 더 복잡한 모델, 더 많은 특성 |
편향-분산 트레이드오프(Bias-Variance Tradeoff):
- 높은 편향(High Bias): 모델이 단순 → 과소적합
- 높은 분산(High Variance): 모델이 복잡 → 과적합
텍스트 마이닝 기초
비정형 텍스트 데이터에서 의미 있는 패턴을 추출하는 분석 방법입니다.
텍스트 전처리
- 토큰화(Tokenization): 텍스트를 단어/문장 단위로 분리
- 불용어 제거(Stop Words Removal): “의”, “는”, “이” 등 분석에 불필요한 단어 제거
- 어간 추출(Stemming): 단어를 어간으로 변환 (running → run)
- 원형 복원(Lemmatization): 단어를 원형으로 변환 (better → good)
텍스트 표현 방식
BOW(Bag of Words): 단어 등장 빈도로 텍스트 표현 (단어 순서 무시)
TF-IDF (Term Frequency-Inverse Document Frequency):
- TF: 특정 문서에서 단어 등장 빈도
- IDF: 전체 문서 중 단어가 등장한 문서 수의 역수 (희귀 단어에 높은 가중치)
핵심 요약 정리
| 알고리즘 | 분류 | 핵심 하이퍼파라미터 | 특징 |
|---|---|---|---|
| 의사결정나무 | 지도 (분류/회귀) | 최대 깊이, 최소 샘플 | 해석 용이 |
| K-Means | 비지도 (군집) | K (군집 수) | 초기화에 민감 |
| 계층적 군집 | 비지도 (군집) | 연결 방법 | K 사전 지정 불필요 |
| PCA | 비지도 (차원 축소) | 주성분 수 | 분산 최대 보존 |
| 랜덤 포레스트 | 지도 (앙상블) | 트리 수, 최대 깊이 | 과적합 강건 |
실전 퀴즈 5문항
Q1. 혼동 행렬에서 TP=80, FP=20, FN=10, TN=90일 때, 정밀도(Precision)와 재현율(Recall)을 각각 계산하시오.
정답:
정밀도 = TP/(TP+FP) = 80/(80+20) = 80/100 = 0.80 (80%)
재현율 = TP/(TP+FN) = 80/(80+10) = 80/90 ≈ 0.889 (88.9%)
F1 = 2×(0.80×0.889)/(0.80+0.889) = 2×0.711/1.689 ≈ 0.842
Q2. K-Means 군집분석에서 최적 K 값을 결정하는 엘보우 방법을 설명하시오.
정답: 엘보우 방법은 K를 1부터 증가시키면서 각 K에서의 군집 내 제곱합(SSW, Sum of Squares Within clusters)을 계산하고 이를 그래프로 표시합니다.
K가 증가할수록 SSW는 감소하지만, 어느 지점에서부터 감소 폭이 급격히 줄어듭니다. 이 “팔꿈치(elbow)” 모양을 보이는 지점의 K가 최적 군집 수입니다. K를 무한정 늘리면 SSW가 0이 되므로 이 기법으로 적절한 K를 선택합니다.
Q3. 지니 계수가 0인 노드와 0.5인 노드의 의미를 설명하시오.
정답:
지니 계수 = 0: 해당 노드에 하나의 클래스만 존재하는 완전히 순수한(pure) 노드입니다. 의사결정나무의 이상적인 리프 노드 상태입니다.
지니 계수 = 0.5: 두 클래스가 각각 50%씩 존재하는 최대 불순도(maximum impurity) 상태입니다. 어느 클래스도 구분되지 않아 분기의 의미가 없는 상태입니다.
Q4. PCA(주성분분석)를 사용하는 이유와, 주성분 수를 결정하는 기준을 설명하시오.
정답:
PCA 사용 이유: 고차원 데이터에서 발생하는 ‘차원의 저주’를 해결하고, 다중공선성 문제를 완화하며, 데이터를 시각화하기 위해 사용합니다. 원본 데이터의 분산을 최대한 보존하면서 차원을 축소합니다.
주성분 수 결정 기준: 주성분들의 누적 설명 분산 비율이 80~90% 이상이 되는 지점까지의 주성분 수를 선택합니다. 또는 스크리 플롯(Scree Plot)에서 고유값이 급격히 감소하는 지점(팔꿈치)을 기준으로 선택합니다.
Q5. AUC(Area Under Curve) 값이 0.5인 분류 모델은 어떤 의미인가?
정답: AUC = 0.5는 해당 분류 모델이 **무작위 분류기(Random Classifier)**와 동일한 성능임을 의미합니다.
ROC 곡선에서 AUC = 0.5는 대각선(y=x)과 일치하는 경우로, 모델이 양성과 음성을 무작위로 구분한다는 뜻입니다. 실제로 예측 능력이 전혀 없는 쓸모없는 모델입니다. AUC가 1에 가까울수록 좋은 모델이며, AUC = 1은 완벽한 분류를 의미합니다.
OIYO 편집부
Content Editor지식 인큐베이터이자 전문 콘텐츠 크리에이터. 경영, 경제, 법률 및 실생활에 유용한 실무/자격증 중심의 깊이 있는 정보를 연구하고 공유합니다.