Titanic survival classifier
Random forest predicting passenger survival. Trained automatically by GitHub Actions; see the pipeline at https://github.com/paulelisha500-ops/ml-pipeline
Results
| Metric | Value |
|---|---|
| CV accuracy (5-fold) | 0.8273 +/- 0.0399 |
| Holdout accuracy | 0.8045 |
| Holdout precision | 0.7297 |
| Holdout recall | 0.7826 |
| Holdout F1 | 0.7552 |
| Holdout ROC-AUC | 0.8480 |
| Majority-class baseline | 0.6162 |
Trained on 712 rows, evaluated on 179 held out with a stratified split.
Features
Derived from the raw columns: passenger class, sex, age, siblings/spouses, parents/children, fare, port of embarkation, title parsed from the name, family size, an is-alone flag, and the deck letter from the cabin.
Imputation sits inside the model pipeline, so it is fitted on training folds only and the evaluation is not optimistic.
Usage
import joblib, pandas as pd
from features import engineer_features
model = joblib.load("model.joblib")
df = pd.read_csv("Titanic-Dataset.csv")
predictions = model.predict(engineer_features(df))
features.py must be importable — it ships in the repository alongside
the training code.
Source data
Titanic-Dataset.csv — 891 rows, 12 columns.