본문 바로가기

04. 캐글

00005. [KGL-00001] Titanic 생존자 예측 #1 - 계획 세우기 🚢

반응형

1. 들어가며

캐글(Kaggle)은 데이터 분석과 머신러닝을 연습하기 좋은 플랫폼입니다. 그중에서도 Titanic 대회는 초보자가 데이터 분석과 모델링을 익히기에 적합한 대표적인 입문 대회입니다. 이번 시리즈에서는 Titanic 데이터를 활용하여 생존자 예측 모델을 만들고 캐글에 제출하는 과정을 단계별로 진행할 예정입니다.

이 글에서는 프로젝트 계획을 세우고, 데이터셋을 분석하는 전체적인 로드맵을 정리해보겠습니다. 🚀


2. Titanic 대회 개요

📌 대회 목표:
1912년 4월 15일, 타이타닉호는 빙산과 충돌하여 침몰하였으며, 약 1500명 이상이 사망했습니다.
이번 대회에서는 승객의 정보(성별, 나이, 좌석 등급 등)를 활용하여 생존 여부(Survived)를 예측하는 것이 목표입니다.

 

📌 데이터 개요:
Titanic 데이터셋에는 훈련 데이터(train.csv)와 테스트 데이터(test.csv) 가 포함되어 있습니다.

  • train.csv: 각 승객의 정보와 생존 여부(Survived)가 포함된 학습용 데이터
  • test.csv: 승객의 정보만 제공되며, Survived 값을 예측해야 하는 데이터

📌 예측해야 할 값 (Target Variable):

  • Survived (0 = 사망, 1 = 생존)

📌 사용할 특징(Feature) 예시:

  • Pclass (좌석 등급: 1등급, 2등급, 3등급)
  • Sex (성별: 남성, 여성)
  • Age (나이)
  • SibSp (함께 탄 형제/자매 및 배우자 수)
  • Parch (함께 탄 부모/자녀 수)
  • Fare (탑승 요금)
  • Embarked (승선한 항구: C = Cherbourg, Q = Queenstown, S = Southampton)

3. 분석 및 모델링 로드맵

🚀 이 시리즈에서는 다음과 같은 단계를 진행할 예정입니다.

✅ Step 1: 데이터 탐색 (Exploratory Data Analysis, EDA)

  • 데이터셋 로드 및 기본 정보 확인 (df.info(), df.describe())
  • 결측치 확인 및 처리 계획 수립
  • 주요 변수들의 분포 확인 (sns.histplot, sns.barplot)
  • 변수 간의 관계 분석 (sns.heatmap, sns.pairplot)

✅ Step 2: 데이터 전처리 (Preprocessing)

  • 결측치 처리 (평균/중앙값으로 채우기, 삭제 등)
  • 범주형 데이터 인코딩 (One-Hot Encoding, Label Encoding)
  • 이상치(outlier) 탐색 및 처리
  • 불필요한 컬럼 제거

✅ Step 3: 특성 엔지니어링 (Feature Engineering)

  • 새로운 특성 생성 (예: FamilySize = SibSp + Parch + 1)
  • 기존 특성 변환 및 조합 (예: Title 추출, Fare 구간화)

✅ Step 4: 머신러닝 모델 학습

  • 기본적인 모델 학습 (Logistic Regression, Decision Tree, RandomForest, XGBoost)
  • 베이스라인 성능 확인

✅ Step 5: 모델 성능 개선 및 최적화

  • 하이퍼파라미터 튜닝 (GridSearchCV, RandomizedSearchCV)
  • 여러 모델을 조합하여 성능 향상 (앙상블, 스태킹)
  • 특성 중요도 분석

✅ Step 6: 최종 예측 및 캐글 제출

  • 테스트 데이터 예측
  • 제출 파일(submission.csv) 생성
  • 캐글 리더보드 점수 확인 및 피드백 반영

4. 사용할 도구 및 라이브러리

Titanic 생존자 예측을 위해 다음과 같은 도구와 라이브러리를 사용할 예정입니다.

 

📌 기본 데이터 분석

 
import pandas as pd  # 데이터프레임 생성 및 조작
import numpy as np   # 수학 연산 및 배열 처리
import matplotlib.pyplot as plt  # 데이터 시각화
import seaborn as sns  # 고급 데이터 시각화

 

📌 머신러닝 모델링

from sklearn.model_selection import train_test_split  # 데이터 분리
from sklearn.preprocessing import LabelEncoder, StandardScaler  # 데이터 전처리
from sklearn.ensemble import RandomForestClassifier  # 랜덤 포레스트 모델
from sklearn.linear_model import LogisticRegression  # 로지스틱 회귀
from sklearn.metrics import accuracy_score, classification_report  # 모델 평가

 

📌 캐글 제출

submission = pd.DataFrame({"PassengerId": test["PassengerId"], "Survived": predictions})
submission.to_csv("submission.csv", index=False)
 

5. 마치며

이번 글에서는 Titanic 생존자 예측 대회의 개요와 분석 계획을 세우는 과정을 다뤘습니다.

다음 글 **[KGL-001] Titanic 생존자 예측 #2 - 데이터 탐색 (EDA)**에서는 데이터셋을 직접 살펴보고, 생존율과 각 변수 간의 관계를 분석해보겠습니다. 🚢✨

 

🔥 이번 프로젝트에서 어떤 부분이 가장 기대되나요?
🔥 분석하면서 궁금한 점이 있으면 댓글로 남겨주세요!

다음 편에서 만나요! 🚀


이렇게 정리하면 초보자도 흐름을 따라가기 쉽고, 블로그 시리즈가 자연스럽게 연결될 수 있어요.
이제 #2 데이터 탐색 (EDA) 도 준비해볼까요? 😊

반응형