2023.05.17 ~ 2023.06.07 · 3명 팀 프로젝트
데이터 전처리와 모델 비교를 거쳐 생존자를 예측했습니다.
Kaggle Titanic 데이터로 승객의 생존 여부를 예측했습니다. 학습 데이터의 분포와 결측치를 확인하고, 새로운 특성을 만든 뒤 여러 분류 모델을 비교했습니다.
데이터에서 만든 특성
- 이름에서 호칭을 추출하고, 같은 티켓 번호를 가진 승객 수와 가족 수를 특성으로 만들었습니다.
- 나이·요금 등 결측치를 그룹별 통계로 채우고, 범주형 값을 숫자로 변환했습니다.
- 승객 등급, 성별, 나이와 생존 여부의 분포를 차트로 확인했습니다.
모델 선택
K-Fold 교차 검증으로 KNN, Decision Tree, Random Forest, XGBoost를 비교했습니다. 당시 전처리한 데이터에서는 Random Forest의 검증 점수가 더 높아 최종 모델로 선택하고, 베이지안 탐색으로 하이퍼파라미터를 조정했습니다.
교차 검증 점수와 Kaggle 제출 정확도는 서로 다른 평가 결과로 구분했습니다.
사용 기술
Python · Pandas · NumPy · scikit-learn · Random Forest · XGBoost
당시 분석·구현 기록 보기
아래는 당시 분석과 제출 화면입니다. 화면에 남아 있는 대회 순위는 캡처 시점의 기록입니다.


데이터 구조




데이터 분석 코드



특성별 생존 분포


호칭 전처리

성별 인코딩

동일 티켓 그룹 크기


나이 결측치 처리

탑승 항구 인코딩

요금 결측치 처리

객실 정보 전처리

가족 수 특성

가족 생존 정보 특성

정규화

모델 비교와 튜닝





