반응형
캐글의 대표 입문 대회인 Titanic: Machine Learning from Disaster를 예시로
참가 → 데이터 분석 → 예측 제출의 전체 과정을 단계별로 안내드리겠습니다.
🚢 1단계. 대회 참가 및 환경 준비
- 캐글 로그인
- https://www.kaggle.com/competitions/titanic 접속
- 오른쪽 상단의 Join Competition 버튼 클릭
- 약관(‘I Understand and Accept’) 동의 후 참가 완료
- 노트북 환경 설정
- 메뉴에서 “Code” → “New Notebook” 선택
- “Add Data” 버튼을 눌러 titanic 데이터셋 추가
- 언어는 Python, 환경은 GPU Off / Internet Off 설정으로 충분

📊 2단계. 데이터 확인 (EDA: 탐색적 데이터 분석)
Titanic 데이터에는 세 가지 주요 CSV 파일이 있습니다:
| 파일 | 설명 |
| train.csv | 생존 여부가 포함된 학습용 데이터 |
| test.csv | 생존 여부 없이 예측해야 할 데이터 |
| gender_submission.csv | 제출 예시 파일 (샘플) |
주요 열(column):
- PassengerId: 승객 번호
- Survived: 생존 여부 (0=사망, 1=생존)
- Pclass: 선실 등급 (1, 2, 3)
- Name, Sex, Age, SibSp, Parch, Ticket, Fare, Cabin, Embarked

📘 예시 코드:
import pandas as pd
train = pd.read_csv("/kaggle/input/titanic/train.csv")
test = pd.read_csv("/kaggle/input/titanic/test.csv")
train.head()
train.info()
train.describe()
🧹 3단계. 데이터 전처리
- 결측치(NaN) 처리
- 범주형 변수(예: Sex, Embarked)를 숫자로 변환
- 필요 없는 열 제거
📘 예시 코드:
train['Age'].fillna(train['Age'].median(), inplace=True)
train['Embarked'].fillna('S', inplace=True)
train['Sex'] = train['Sex'].map({'male':0, 'female':1})
train['Embarked'] = train['Embarked'].map({'S':0, 'C':1, 'Q':2})
🧠 4단계. 모델 학습 (예: 랜덤포레스트)
📘 예시 코드:
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
features = ['Pclass', 'Sex', 'Age', 'Fare', 'Embarked']
X = train[features]
y = train['Survived']
X_train, X_valid, y_train, y_valid = train_test_split(X, y, test_size=0.2, random_state=42)
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train, y_train)
preds = model.predict(X_valid)
print("정확도:", accuracy_score(y_valid, preds))
📤 5단계. 예측 결과 제출
📘 예시 코드:
test['Sex'] = test['Sex'].map({'male':0, 'female':1})
test['Embarked'] = test['Embarked'].map({'S':0, 'C':1, 'Q':2})
test['Age'].fillna(train['Age'].median(), inplace=True)
test['Fare'].fillna(train['Fare'].median(), inplace=True)
X_test = test[features]
predictions = model.predict(X_test)
output = pd.DataFrame({'PassengerId': test.PassengerId, 'Survived': predictions})
output.to_csv('submission.csv', index=False)
그다음 Kaggle 페이지에서
➡️ “Submit Predictions” → submission.csv 파일 업로드 → 자동 채점 후 리더보드에 점수 표시됩니다.
📈 6단계. 다음 목표
Titanic 대회는 머신러닝 입문용이므로 이후 단계로 다음을 권장드립니다:
- House Prices 대회 (회귀 문제 실습)
- Digit Recognizer (MNIST) (딥러닝 실습)
- Feature Engineering 및 Hyperparameter Tuning 연습
'통계데이터과학과' 카테고리의 다른 글
| 분석 모형의 전면 리모델링 (0) | 2026.02.26 |
|---|---|
| 통계에서 문자 'K' 관례적 용도 (0) | 2026.02.25 |
| 캐글(Kaggle)에서 컴페티션(Competition) (0) | 2025.11.08 |
| SQLD 자격증 준비 로드맵 (1) | 2025.10.25 |
| 구글에서 '간호사'를 검색하면 여성 이미지가 주로 나오는 이유 (2) | 2025.03.19 |
댓글