Step 3 타이타닉 생존자 예측

랜덤 포레스트(Random Forest)를 활용한 전통적 머신러닝의 정석

🚢 0. 타이타닉 비극과 데이터 과학

1912년 4월 15일, "침몰할 수 없다"고 여겨졌던 호화 여객선 타이타닉호가 빙산과 충돌하여 침몰했습니다. 2,224명의 승객과 승무원 중 1,502명이 목숨을 잃은 이 비극적 사건은, 100년이 지난 지금 데이터 과학의 가장 유명한 교육 자료가 되었습니다.

왜일까요? 타이타닉 데이터는 머신러닝의 핵심 개념들을 완벽하게 보여주기 때문입니다:

📊 1. 데이터셋 개요

전체 승객 수
891
학습 데이터
생존자 비율
38.4%
342명 생존
특성(Features)
12
변수 개수
목표 정확도
80%+
벤치마크

1.1 주요 변수(Features) 설명

변수명 설명 데이터 타입 예측력
Survived 생존 여부 (0=사망, 1=생존) 이진(Binary) 목표 변수
Pclass 객실 등급 (1=1등석, 2=2등석, 3=3등석) 범주형 매우 높음
Sex 성별 (male, female) 범주형 매우 높음
Age 나이 (연속형) 수치형 높음
SibSp 함께 탑승한 형제자매/배우자 수 수치형 중간
Parch 함께 탑승한 부모/자녀 수 수치형 중간
Fare 운임 요금 수치형 높음
Embarked 승선 항구 (C=셰르부르, Q=퀸스타운, S=사우샘프턴) 범주형 낮음
💡 데이터에서 발견되는 패턴:
- 성별: 여성의 생존율은 약 74%, 남성은 약 19% (약 4배 차이!)
- 객실 등급: 1등석 승객의 생존율은 63%, 3등석은 24%
- 나이: 어린이(15세 미만)의 생존율이 상대적으로 높음
- "여자와 어린이 먼저" 원칙이 데이터에 명확히 반영되어 있습니다.

🎯 2. 모델 성능 요약 (Model Performance)

2.1 평가 지표(Metrics) 심화

단순히 "정확도 83%"라고만 말하는 것은 불충분합니다. 머신러닝 모델을 제대로 평가하려면 여러 지표를 함께 봐야 합니다.

혼동 행렬(Confusion Matrix)

예측값
사망 예측 생존 예측
실제값 실제 사망 105
(True Negative)
5
(False Positive)
실제 생존 25
(False Negative)
44
(True Positive)

이로부터 계산되는 지표들:

⚠️ 정확도의 함정:
만약 데이터에서 사망자가 90%라면, 무조건 "사망"이라고만 예측해도 정확도 90%를 달성합니다. 이것은 아무것도 배우지 못한 것이죠! 따라서 정밀도, 재현율, F1-Score 등을 함께 봐야 합니다.

타이타닉 데이터는 사망 61.6%, 생존 38.4%로 비교적 균형잡혀 있어서 정확도가 의미있는 지표가 됩니다.

📈 3. 통계적 유의성 분석: 귀무가설 검정

머신러닝 결과가 단순히 우연의 산물이 아니라 진짜 패턴을 발견했다는 것을 증명하려면, 통계학의 핵심 개념인 가설 검정(Hypothesis Testing)을 사용해야 합니다.

가설 설정

귀무가설(Null Hypothesis, H₀):

"타이타닉호의 생존은 승객의 특성(성별, 나이, 객실 등급, 요금 등)과 아무 관계가 없으며, 완전히 무작위(Luck)로 일어났다. 즉, 모든 변수의 회귀 계수는 0이다."

대립가설(Alternative Hypothesis, H₁):

"생존은 승객의 사회적 지위, 성별, 나이 등 특정 요소에 의해 유의미한 영향을 받았다. 적어도 하나 이상의 변수가 생존 확률에 통계적으로 유의한 영향을 미친다."

3.1 통계적 검정 결과

우리 모델이 83.24%의 정확도를 달성했다는 것은 무엇을 의미할까요?

🎯 결론: 귀무가설 기각(Reject H₀)

우리는 다음과 같은 증거로 귀무가설을 기각합니다:
  1. 모델 정확도가 무작위 예측(50%)이나 베이스라인(61.6%)보다 통계적으로 유의하게 높음
  2. 특정 변수들(성별, 요금, 나이, 객실등급)이 압도적으로 높은 중요도를 보임
  3. 여성의 생존율(74%)과 남성의 생존율(19%)의 차이가 우연으로 설명 불가능
  4. 교차 검증(Cross-Validation) 결과 일관되게 80% 이상의 성능 유지

→ 타이타닉호의 생존은 무작위가 아니었으며, 사회적 지위(객실 등급, 요금)와 성별, 나이가 생존에 결정적 영향을 미쳤음을 과학적으로 증명했습니다.

🌲 4. 왜 랜덤 포레스트(Random Forest)인가?

타이타닉 데이터는 딥러닝이 아닌 전통적 머신러닝으로 분석하는 것이 더 적합합니다. 특히 랜덤 포레스트는 이런 소규모 데이터셋에서 탁월한 성능을 보입니다.

4.1 랜덤 포레스트의 작동 원리

랜덤 포레스트는 "집단 지성"의 원리를 활용합니다. 하나의 의사결정 나무(Decision Tree)만 사용하면 과적합되기 쉽지만, 여러 나무의 의견을 종합하면 훨씬 안정적인 예측이 가능합니다.

원본 데이터 샘플 1 샘플 2 샘플 N ... 나무 1 나무 2 나무 N ... 다수결 투표

랜덤 포레스트의 3단계 프로세스

  1. 부트스트랩(Bootstrap): 원본 데이터에서 중복을 허용하여 무작위로 샘플을 추출합니다. 예를 들어 891개 데이터에서 891개를 복원추출하면, 일부 데이터는 여러 번 선택되고 일부는 한 번도 선택되지 않습니다.

  2. 의사결정 나무 학습: 각 샘플마다 하나의 의사결정 나무를 만듭니다. 이때 각 분할 지점에서 전체 변수가 아닌 일부 변수만 무작위로 선택하여 분할합니다. 이것이 "랜덤"이라는 이름의 유래입니다.

  3. 다수결 투표(Voting): 새로운 데이터가 들어오면 모든 나무가 각자 예측을 하고, 가장 많은 나무가 선택한 클래스를 최종 예측으로 결정합니다. (회귀 문제에서는 평균을 사용)

4.2 전통적 머신러닝 vs 딥러닝 비교

특성 머신러닝 (랜덤 포레스트) 딥러닝 (신경망)
필요 데이터 규모 수백~수천 건 수만~수백만 건
학습 시간 초~분 단위 시간~일 단위
특성 공학 수동으로 필요 (중요!) 자동으로 학습
해석 가능성 높음 (변수 중요도 제공) 낮음 (블랙박스)
과적합 위험 낮음 (앙상블 효과) 높음 (정규화 필요)
복잡한 패턴 제한적 탁월 (이미지, 텍스트 등)
타이타닉 적합도 ⭐⭐⭐⭐⭐ ⭐⭐ (오버킬)

🔬 5. 왜 이 규모에선 '머신러닝'인가?

📉 데이터 효율성

딥러닝은 패턴을 학습하는데 수만 건 이상의 데이터가 필요합니다. 하지만 타이타닉은 891건뿐이죠. 이런 소규모 데이터에서는 통계 기반 머신러닝이 훨씬 안정적이고 신뢰할 수 있는 결과를 냅니다.

예를 들어, 신경망은 파라미터가 수천~수만 개인데, 데이터가 1000개도 안 되면 파라미터보다 데이터가 적어져서 제대로 학습할 수 없습니다.
🎯 과적합 방지

데이터가 적을 때 딥러닝을 쓰면 과적합(Overfitting)에 빠지기 쉽습니다. 과적합이란 훈련 데이터만 달달 외워서, 새로운 데이터에는 전혀 대응하지 못하는 현상입니다.

랜덤 포레스트는 여러 나무의 집단 지성으로 이런 문제를 자연스럽게 해결합니다. 각 나무가 다른 관점에서 학습하므로, 일반화 성능이 뛰어납니다.
🔍 해석의 투명성

딥러닝은 "왜 이 사람이 생존할 것으로 예측했는가?"를 설명하기 어렵습니다. 수백만 개의 가중치가 복잡하게 얽혀있어서 블랙박스처럼 작동하죠.

하지만 랜덤 포레스트는 변수 중요도(Feature Importance)를 제공해서, "성별이 32%, 요금이 26% 영향을 미쳤다"처럼 명확한 해석이 가능합니다. 의료, 금융 등 설명이 중요한 분야에서 큰 강점입니다.
⚡ 계산 효율성

랜덤 포레스트는 일반 노트북에서도 몇 초 만에 학습이 끝납니다. GPU도 필요 없고, 복잡한 하이퍼파라미터 튜닝도 상대적으로 간단합니다.

반면 딥러닝은 강력한 GPU와 긴 학습 시간이 필요합니다. 891개 데이터를 학습시키는데 고성능 컴퓨팅을 쓰는 것은 비효율적이죠.
📊 구조화된 데이터에 최적

타이타닉 데이터는 테이블 형태의 구조화된 데이터입니다. 나이, 성별, 요금처럼 각 열이 명확한 의미를 가지고 있죠.

이런 데이터에서는 전통적 머신러닝이 딥러닝보다 더 좋은 성능을 냅니다. 딥러닝은 이미지, 텍스트, 음성처럼 비구조화된 데이터에서 진가를 발휘합니다.
🎓 교육적 가치

랜덤 포레스트는 작동 원리를 이해하기 쉽습니다. 의사결정 나무를 시각화하면 "Sex가 female이면 왼쪽, 아니면 오른쪽"처럼 사람이 직관적으로 이해할 수 있는 규칙을 볼 수 있습니다.

이는 머신러닝을 처음 배우는 사람에게 "AI가 어떻게 판단하는가"를 명확하게 보여주는 훌륭한 교육 도구입니다.

💡 실습 관전 포인트:
1. 데이터 전처리 과정 (결측치 처리, 범주형 변수 인코딩)
2. 특성 공학(Feature Engineering)의 위력 (가족 크기, 칭호 추출 등)
3. 랜덤 포레스트의 변수 중요도 분석
4. 교차 검증(Cross-Validation)을 통한 모델 평가
5. 혼동 행렬과 다양한 평가 지표 계산

💻 6. 실습: 타이타닉 생존자 예측 프로젝트

아래 Jupyter 노트북에서 실제로 랜덤 포레스트를 구현하고, 각 단계의 결과를 직접 확인해보세요!

🎯 핵심 요약