Back to Projects
I
Data Science / Analysis

IoT Oil Production Verification

ML Engineer (Research)

PythonPyTorchXGBoostScikit-learnSHAPFastAPI

About the Project

This is doctoral research on verifying reported oil production using machine learning, built as an IoT-ML-cloud framework. The system predicts net oil production in barrels per day from IoT sensor readings across four Nigerian oil stations. The framing matters: this is not forecasting for planning purposes, it is verification — the model's prediction is compared against reported figures so that discrepancies can be flagged for investigation. It spans nine notebooks, a trained model registry, and a FastAPI service that exposes the models for station-level querying.

Key Highlights

  • Trained on three Cawthorne stations and held out Alakiri entirely, testing whether the model generalizes to a station it has never seen
  • Built a nine-notebook pipeline: ingestion, EDA, feature engineering, baselines, tree models, classification, RNN, evaluation, and SHAP explainability
  • Controlled for target leakage by lagging features, so the model cannot read the answer from a same-timestamp reading
  • Compared gradient-boosted trees against LSTM/GRU recurrent networks to test whether sequence modelling earned its added complexity
  • Used SHAP to attribute predictions to specific sensor readings — necessary when the output is used to question a reported number
  • Wrapped the models in a FastAPI service with Alembic migrations and tests, with a Next.js frontend planned for station-level visualization

Technical Challenges

Cross-station generalization was the honest hard test. A model trained and validated on the same stations scores well and tells you nothing about whether it works at a new site, so holding out Alakiri entirely was the only result worth reporting. Leakage was the other constant risk — sensor data has many features correlated with the target at the same timestamp, so lagging inputs was essential to avoid a model that looks excellent and has learned nothing useful.