ML model to predict oil presence using geological and seismic data — SPE DSEATS Africa Datathon 2026
# Prediction of Oil Presence Using Machine Learning
### SPE DSEATS Africa Region Datathon 2026 — Team KPG
## Overview
This project develops a machine learning model to predict the presence of oil in unexplored locations, using geological and seismic features. It was submitted as part of the SPE DSEATS Africa Region Datathon 2026, which challenged teams to apply both standard data science techniques and oil & gas domain knowledge to a real-world classification problem.
---
## The Dataset
The dataset contains 3,000 training samples and 2,000 test samples, each representing a geographic location with the following features:
| Feature | Description |
|---|---|
| Rock_Type | Primary rock formation (Sandstone, Limestone, Shale) |
| Porosity (%) | Void space in rock — valid range 0–30% |
| Permeability (mD) | Fluid flow capacity — valid range 1–1000 mD |
| Trap_Type | Structural trap type (Anticline, Dome, Fault, None) |
| Seismic_Score | Seismic survey score (0–1) |
| Proximity_to_Oil_Field (km) | Distance to nearest known oil field (0–5 km) |
| Estimated_Reservoir_Depth (m) | Predicted depth of oil-bearing layer (500–5000 m) |
| Oil_Presence | Target variable — 1 = Oil Found, 0 = No Oil |
The dataset contained nulls, duplicates, and structural anomalies —
teams were expected to apply domain knowledge to detect and address these.
---
## Project Structure
```
├── Team_KPG_PythonCode.ipynb # Full pipeline — cleaning, EDA, modeling
├── Team_KPG_Presentation.pdf # Project presentation (9 slides)
├── Team_KPG_Prediction_Part1.csv # Part 1 predictions (standard ML approach)
├── Team_KPG_Prediction_Part2.csv # Part 2 predictions (physics-informed approach)
```
---
## Approach
### Part 1 — Standard Data Science Pipeline
- Removed 6 exact duplicate rows (3,000 → 2,994 rows)
- Investigated missing data before fixing it — tested whether nulls
correlated with the target variable before deciding on treatment
- MICE imputation for 5 numeric columns with random missingness
- T …