2026
Kaggle, Machine Learning
ROGII GeosteeringTVT Depth Prediction
Predicting per-foot True Vertical Thickness along horizontal wells from gamma-ray logs, a reference typewell and 3D trajectory, using a particle filter plus a gradient-boosting stack.
In numbers
- 2,194 / 6,125
- final leaderboard, top 36%
- 7.264 ft
- pooled RMSE, public leaderboard
- ~62%
- of residual error traced to ±15 ft signal ambiguity
What I did
- 1.
Predicted per-foot True Vertical Thickness along the hidden evaluation zone of horizontal wells from gamma-ray logs, a reference typewell, and 3D well trajectory in a Kaggle code competition.
- 2.
Built a likelihood-weighted particle filter (128 × 500 particles) to match each well's gamma-ray signal to the typewell via normalised cross-correlation and beam search, then corrected trajectories with a gradient-boosting stack (XGBoost, CatBoost, LightGBM).
- 3.
Diagnosed, through 25+ controlled experiments and out-of-fold validation, that ~62% of remaining error was an inherent ±15 ft signal ambiguity rather than a modelling gap, and prototyped a differentiable Soft-DTW neural aligner to explore closing it.
- 4.
Scored 7.264 ft pooled RMSE on the public leaderboard and finished 2,194th of 6,125 teams on the final private leaderboard.
Notes
Approach
- –Likelihood-weighted particle filter (128 seeds × 500 particles) matching the well's gamma-ray to the typewell, with NCC and beam search.
- –Gradient-boosting stack (XGBoost / CatBoost / LightGBM) correcting the particle-filter trajectories.
- –U = TVT + Z formation-coordinate projection (the geology is smooth in U), plus per-well visible-prefix calibration and drift amplification.
- –Prototyped a differentiable Soft-DTW / forward-backward neural aligner trained end-to-end.
Key analysis
- –Error decomposition showed ~62% of the error is a ±15 ft cyclostratigraphic "bundle" ambiguity: the gamma-ray repeats every ~15 ft, matching the typewell at two near-identical depths.
- –25+ controlled experiments with rigorous out-of-fold validation showed this is largely an information limit, not a modelling gap.
Built with
Python · XGBoost · CatBoost · LightGBM · PyTorch · NumPy · Numba · Pandas
Next project
Biohub →