본문 바로가기

04. 캐글

00010. [KAG-001] Titanic 생존자 예측 #6 - XGBoost로 정밀하게 예측하기

반응형

이전 포스트에서 다양한 Feature Engineering 기법으로 모델 성능을 개선했습니다.
이번에는 한층 더 정밀한 예측을 위해 XGBoost 모델을 도입해보겠습니다.

XGBoost는 Kaggle에서 널리 사용되는 강력한 부스팅 기반 알고리즘입니다.


✅ 1. XGBoost 설치 (필요 시)

Google Colab이나 로컬 환경에서 다음과 같이 설치합니다:

pip install xgboost

✅ 2. 필요한 라이브러리 임포트

import xgboost as xgb
from sklearn.metrics import accuracy_score
from sklearn.model_selection import train_test_split

✅ 3. 학습 데이터 구성 (이전 에피소드의 피처 활용)

features = ['Pclass', 'Sex', 'Title', 'AgeBin', 'FareBin', 'FamilySize', 'IsAlone', 'Embarked']
X = train[features]
y = train['Survived']
X_test = test[features]

검증 세트 분리:

X_train, X_valid, y_train, y_valid = train_test_split(X, y, test_size=0.2, random_state=42)

✅ 4. XGBoost 모델 학습 및 예측

model = xgb.XGBClassifier(n_estimators=100, max_depth=4, learning_rate=0.1, use_label_encoder=False, eval_metric='logloss')
model.fit(X_train, y_train)

preds = model.predict(X_valid)
print("XGBoost 검증 정확도:", accuracy_score(y_valid, preds))

✅ 5. Kaggle 제출 파일 생성

final_preds = model.predict(X_test)
submission = pd.DataFrame({
    'PassengerId': test['PassengerId'],
    'Survived': final_preds
})

submission.to_csv('submission_xgb.csv', index=False)

📊 참고: Feature Importance 시각화

xgb.plot_importance(model)
plt.show()

이 그래프를 통해 어떤 변수들이 생존 예측에 큰 영향을 주었는지 확인할 수 있습니다.


✍️ 정리

  • XGBoost는 일반적인 트리 기반 모델보다 높은 성능을 보여줌
  • Feature Engineering + XGBoost 조합은 상위 점수를 노리기에 좋은 전략
  • 앞으로는 GridSearchCV로 파라미터 튜닝을 해보면 좋음

🔜 다음 에피소드 예고

다음 편에서는 하이퍼파라미터 튜닝(GridSearchCV) 을 통해 점수를 더욱 개선해보겠습니다.

감사합니다 🙌

반응형