All Posts
Browse all blog posts by year and month
202612
October2
Notes on Jev, and a Demo Built on Its New Box Question
What Jev is, what Jev 1.14 added with the Box question, how my talk-to-scroll demo uses it, and my practical notes and basic hygiene for asking Jev questions.
VN2 Features
The VN2 features I implemented and backtested in our LightGBM store forecast: definitions, correlation, SHAP analysis, the final feature set and how it compares with production, after a short background on the VN2 competition and its winning solution.
September3
One Prompt, Thirty-Two Calls, or Seven
Putting an LLM checklist into fewer model calls forces its retrieval into more, narrower queries. A seeded simulation of three call shapes, the counting limit on what a grouped call can see, and a skipped requirement that used to come back as a severe finding.
Perfect Precision, Zero Recall, and No Curve to Trade Along
A document check cleared every forgery in a labelled set. The threshold was not the problem: the check read the file's structure while the forgeries were in the pixels. A seeded rebuild shows a structure-only detector reaching exactly two operating points, AUC 0.500, and what calibrating on genuine documents alone can and cannot buy.
The Constant Nobody Could Re-Measure
A magic number survives because there is nothing to re-measure it against. The calibration set is usually already in a log you throw away, the same data sets the noise floor that makes any result readable, and the estimator you fix is rarely where the error was.
August1
From Brief to Rendered Animation: Making an AI Media Pipeline Inspectable
A failed scene edit shows what keeps an AI video pipeline reliable: an approved script, timing taken from the voiceover, a plain fallback version, and a check of the finished file.
June1
Calendar Features for TabPFN Time Series: Geometry, Encodings, and an Open Edge Case
TabPFN-TS turns forecasting into a table of features. A 24-hour edge case shows that a correct encoding, compatibility with the trained model, and evidence for a release are three separate questions.
April2
Tabular Foundation Models, Explained and Tested on a Real Sales Forecast
My notes on tabular foundation models (TabPFN, TabICL, TabFM): architecture, training, inference, licences, how they compare with trees, time series, and two tests against the LightGBM model we use for weekly store sales.
Insurance AI Needs Evidence Graphs, Not Just Fraud Scores
A synthetic insurance claim shows how hashes, typed facts, contradictions, abstention, and human review make AI recommendations auditable.
February2
From PDFs to Citable Verdicts: Engineering an Evidence-Grounded Qualiopi Pre-Audit
A practical design for separating relevance from proof, preserving document lineage, abstaining safely, and evaluating a citable Qualiopi pre-audit.
From Human-Like Text to Human Voice: What LLM Writing Still Misses
Short AI text can already pass as human in some tests. The harder question is whether a model can keep one real person's voice consistent across topics, audiences and time.
January1
I Stopped Prompting Claude Code and Started Engineering the Loop
A green test suite never reached the boundary where a problem lived. A small, reproducible experiment shows how repository rules, executable checks, focused review and recorded run state make an AI coding agent's work easier to check.
20259
December1
Forecast Metrics
My notes on forecast metrics for weekly sales forecasts: MAE, bias, MAPE, WAPE, MASE and RMSSE, business KPIs from a split bias, censored demand in backtests, and why RelMAE and RelMSE replaced MASE and RMSSE.
November3
Solving the Low and High Seller Bias in a Weekly Sales Forecast
Two studies on a LightGBM weekly sales forecast that under-forecasts high sellers and over-forecasts low sellers: separate models, a better initialisation, and normalizing the dataset, then a wide backtest of normalization.
Aeon Periodograms for Unequal-Length Time Series
Why Aeon's PeriodogramTransformer rejected a valid padding mode on unequal-length input, and how comparing its two input paths catches this kind of bug.
Fourier Smoothing in Aeon: Symmetry, Cutoffs, and Better Tests
Aeon's Fourier smoother could return a kept frequency at half its amplitude while its tests passed. Why real signals need both halves of a conjugate pair, how the fix moved the cutoff, and which tests catch each problem.
October1
Your ACF Can Be Right While Its Confidence Interval Is Wrong
A missing-data bug in statsmodels left ACF estimates unchanged while confidence intervals and Ljung-Box statistics used the wrong sample size.
September1
Validation, Hyperparameter and Feature Set Studies for a Weekly Sales Forecast
Three studies on a LightGBM weekly sales forecast, in the order we ran them: the validation set for early stopping, the hyperparameter set, and the feature set.
August1
Explainability Using SHAP
How I used SHAP to explain a LightGBM sales forecast: the plots, an example of an analysis, feature correlation with SHAP, a template notebook and an explainability dashboard.
March2
How Far Should You Tune LightGBM? A Budget for the Last Fraction of a Point
Tuning LightGBM can win. Only a comparison with a fair early-stopped baseline, on data the search never touched, shows whether the last fraction of a point pays for the search.
How LightGBM Builds Its Trees
Decision trees, bagging and random forests, gradient boosting, then LightGBM: leaf-wise growth, histograms, GOSS, feature bundling, its parameters and its categorical splits.