LLM-Generated Feature Pools for Time Series Anomaly Detection
Organizations: Huawei Noah’s Ark Lab, Paris, France · Centre de Recherche en Informatique, Mines Paris, PSL University
Abstract
We study how far a simple statistical pipeline can go on univariate time series anomaly detection under a strict selection protocol. The method extracts a small pool of statistics over sliding windows, scores each window with a transductive robust (MAD) model, and selects a feature subset per domain on a held-out tuning split. On TSB-AD-U it reaches per-series VUS-PR, above the best neural () and statistical () entries on the public leaderboard and within of the strongest pretrained foundation model, several of which use more supervision than ours. Ablations locate the cause: across three selection strategies and a hindsight oracle the score moves by , and across the aggregation grid by , while changing the candidate pool moves it by . The candidate pool sets the ceiling; the search over it is second-order. We therefore generate a pool per domain by prompting a multimodal LLM with in-context example windows from that domain. The generated pools match the hand-crafted one under matched selection, and the two cover different domains: selecting over their union improves on the generated pool in all twelve generator-seed pairs and lifts the pipeline to , matching the performance of the best entry on the leaderboard.
Figures & tables
| Method | Family | Pretrain. | VUS-PR |
|---|---|---|---|
| Pretrained on time series | |||
| Time-RCD + MAFT † | foundation | ✓ | 0.59 |
| TSPulse_FT † | foundation | ✓ | 0.55 |
| Time-RCD † | foundation | ✓ | 0.52 |
| CHARM † | foundation | ✓ | 0.50 |
| MOMENT_FT † | foundation | ✓ | 0.39 |
| point aggregation | ||
| feature aggregation | mean | max |
| mean | 0.435 | 0.389 |
| 0.433 | 0.389 | |
| top-3 | 0.430 | 0.384 |
| 0.428 | 0.384 | |
| top-2 | 0.424 | 0.380 |
| Feature pool | #feat. | VUS-PR |
|---|---|---|
| Union (generated hand) | 20 | 0.588 0.016 |
| Generated ( gemini-3.5 ) | 10 | 0.569 0.025 |
| Hand-crafted statistics | 10 | 0.529 |
| catch22 (generic library) | 22 | 0.362 |
| Generator | llm | union |
|---|---|---|
| gemini-3.5-flash | 0.569 0.025 | 0.588 0.016 |
| gemini-3.1-flash-lite | 0.540 0.018 | 0.564 0.025 |
| claude-sonnet-5 | 0.497 0.024 | 0.551 0.028 |
| Domain | Hand | llm | union | |
|---|---|---|---|---|
| environment | 18 | 0.360 | 0.348 | 0.408 |
| facility | 87 | 0.603 | 0.673 | 0.656 |
| finance | 8 | 0.768 | 0.745 | 0.743 |
| human activity | 43 | 0.238 | 0.513 | 0.528 |
| medical | 47 | 0.593 | 0.540 | 0.590 |
| sensor | 39 | 0.686 | 0.643 | 0.756 |
Appendix figures & tables8 assets
Supplementary material from the paper’s appendix.
Appendix
| Domain | Tuning | Eval |
|---|---|---|
| environment | 2 | 18 |
| facility | 9 | 87 |
| finance | 2 | 8 |
| human activity | 3 | 43 |
| medical | 7 | 47 |
| sensor | 5 | 39 |
| Hyperparameter | Values tried | Final |
| Windowing — fixed a priori, not searched | ||
| window length | — | per-series dominant period |
| stride | — | |
| period floor / cap | — | 4 / series length |
| Detector | ||
| location / scale | — | median / MAD |
| Setting | Value |
|---|---|
| Generators | gemini-3.5-flash [ 7 ] , |
| gemini-3.1-flash-lite [ 4 ] , | |
| claude-sonnet-5 [ 2 ] | |
| Features requested | 10 per domain |
| Accepted pool size | 10 (a run yielding fewer is retried) |
| Example windows | 5 normal 5 anomalous per domain |
| Generator | Input | Output | Total | USD | s |
|---|---|---|---|---|---|
| gemini-3.5-flash | 11,180 | 546 | 17,075 | 0.070 | 34.9 |
| gemini-3.1-flash-lite | 11,180 | 512 | 11,692 | 0.004 | 2.7 |
| claude-sonnet-5 | 1,767 | 1,744 | 3,511 | 0.031 | 14.0 |
| Generator | Pool | greedy | top- | mRMR |
|---|---|---|---|---|
| gemini-3.5-flash | llm | 0.572 | 0.576 | 0.573 |
| union | — | 0.571 | 0.588 | |
| gemini-3.1- | llm | 0.541 | 0.543 | 0.540 |
| flash-lite | union | — | 0.538 | 0.564 |
| claude-sonnet-5 | llm | 0.491 | 0.496 | 0.495 |
| union | — | 0.526 | 0.551 |
| Domain | Selected features | Tun. | Eval |
|---|---|---|---|
| environment | skewness, mean abs. change | 0.430 | 0.360 |
| facility | IQR, skewness | 0.751 | 0.604 |
| finance | std, mean abs. change, skewness | 0.212 | 0.768 |
| human activity | zero crossings, autocorr. lag-2, skewness | 0.213 | 0.238 |
| medical | skewness, std, entropy | 0.513 | 0.593 |
| sensor | std, IQR | 0.732 | 0.686 |
| Generator | Seed | llm | union | |
|---|---|---|---|---|
| gemini-3.5-flash | 0 | 0.563 | 0.591 | |
| 1 | 0.589 | 0.599 | ||
| 2 | 0.531 | 0.562 | ||
| 3 | 0.594 | 0.600 | ||
| gemini-3.1-flash-lite | 0 | 0.547 | 0.583 | |
| 1 | 0.533 | 0.545 |
| Domain | greedy | top- | mRMR | oracle | |
|---|---|---|---|---|---|
| environment | 18 | 0.360 | 0.360 | 0.360 | 0.360 |
| facility | 87 | 0.604 | 0.565 | 0.656 | 0.656 |
| finance | 8 | 0.768 | 0.780 | 0.780 | 0.780 |
| human activity | 43 | 0.238 | 0.239 | 0.239 | 0.239 |
| medical | 47 | 0.593 | 0.538 | 0.538 | 0.593 |
| sensor | 39 | 0.686 | 0.758 | 0.754 | 0.758 |