Titanic survival prediction and exploratory data analysis project for the BCS 404 Data Science course at Accra Technical University.
# BCS 404: Titanic Data Science Project
**Accra Technical University — Department of Computer Science**
**Course:** BCS 404: Introduction to Data Science with Python
**Lecturer:** Dr. Joseph Dadzie
**Academic Year:** 2025/2026, Second Semester
## Project Overview
This project performs a complete data science workflow on the Kaggle Titanic
dataset: data acquisition, data cleaning, exploratory data visualisation,
statistical analysis, and a Logistic Regression machine learning model to
predict passenger survival.
## Repository Contents
| File | Description |
|---|---|
| `Titanic_Project_BCS404.ipynb` | Jupyter Notebook containing all code, outputs, and visualisations for Tasks 1–6 |
| `Titanic_Project_Report_BCS404.docx` | Full project report (cover page, TOC, introduction through appendix) |
| `train.csv` | Titanic training dataset (from Kaggle) |
| `titanic_clean.csv` | Cleaned dataset produced by the notebook |
| `README.md` | This file |
## How to Run
1. Install dependencies: `pip install pandas numpy matplotlib seaborn scikit-learn jupyter`
2. Place `train.csv` in the same directory as the notebook.
3. Launch Jupyter: `jupyter notebook Titanic_Project_BCS404.ipynb`
4. Run all cells in order.
## Summary of Results
- **Dataset:** 891 passengers, 12 columns (Kaggle Titanic training set).
- **Cleaning:** `Age` imputed by Pclass/Sex median; `Embarked` imputed by mode;
`Cabin` replaced with a `HasCabin` indicator due to 77% missingness.
- **Key correlations:** Strongest positive — Fare & HasCabin (r = 0.482).
Strongest negative — Pclass & HasCabin (r = -0.726).
- **Model:** Logistic Regression on 8 features, 80/20 stratified train/test split.
- **Accuracy:** 81.0% on the test set (179 passengers).
## Dataset Source
Kaggle "Titanic - Machine Learning from Disaster" competition:
kaggle.com
## Author
[Insert Your Name] — [Insert Your Index Number]