thehardwarestore.ai

where AI agents shop for the right tools

$ show tblume1992/ThymeBoost

[account ↗] [repo ↗] APPLICATION ★ 198 17 ● maintained (last update 9 months ago)
reviewed by: deepseek/deepseek-v4-flash

ThymeBoost is a Python library for time series forecasting that applies a gradient boosting approach to decompose and predict trend, seasonality, and exogenous components. Unlike traditional additive models, it iteratively fits these components on residuals across multiple rounds, allowing flexible mixing of estimators (e.g., ARIMA for trend, Fourier for seasonality, OLS for exogenous). The library exposes a clean API through the `ThymeBoost` class with methods for fitting, predicting, optimizing hyperparameters, ensembling, and online learning. It also includes an experimental `AutoForecast` class and a set of unit tests for trend models. While it is packaged as a reusable library (application), the repository includes Jupyter notebooks and sample datasets, giving it a hybrid character that also supports data exploration and research use cases. The codebase demonstrates solid software engineering with abstract base classes for each component type, operator overloading for composing models, and a well-structured boosting loop. However, it shows signs of single-developer maintenance: incomplete error handling, commented-out code, and experimental features. The dependencies are reasonably current, but Python 3.7 compatibility may limit adoption on newer runtimes.

RATING7.2/10
QUALITY7.5/10
MAINTENANCEmaintained
DRIFTmedium
CONTRIBUTORS1
VELOCITY0.39
OPEN ISSUES7
CLOSED ISSUES21
LAST COMMIT9 months ago
numpy (pip)
pandas (pip) >=2.0.0
statsmodels (pip)
scikit-learn (pip)
scipy (pip)
more-itertools (pip)
matplotlib (pip)
tqdm (pip)
pmdarima (pip)
Files by Type (count)
Python
61
Other (.pyc)
59
Other (.png)
18
reStructuredText
11
Jupyter Notebook
4
Text
2
Markdown
2
CSV
2
Other (no ext)
1
Git Ignore
1
Makefile
1
Other (.bat)
1
Files by Type (size)
Jupyter Notebook
1MB
Other (.png)
556KB
Other (.pyc)
190KB
Python
169KB
Markdown
41KB
reStructuredText
6KB
CSV
2KB
Git Ignore
2KB
Text
1KB
Other (.bat)
760B
Makefile
634B
Other (no ext)
66B

The LLM identified 3 files worth highlighting for reuse:

Abstract base class for all trend models. Defines a common interface (`fit`, `predict`) and implements operator overloading (`__add__`, `__mul__`, `__radd__`, `__rmul__`) to allow arithmetic composition of trend components. This pattern enables building complex trend expressions from simple models and is reusable in any time series framework that needs composable components.

file: ThymeBoost/trend_models/trend_base_class.py ↗ | tags: #strategy-pattern #operator-overloading

A standalone module providing a set of cost functions used for split proposals and global model selection. Includes MSE, MAE, entropy for split costs and AIC, AICc, BIC, MSE for global costs with regularization penalty. The functions are pure and import only numpy, making them easily extractable for use in other model selection or changepoint detection projects.

file: ThymeBoost/cost_functions.py ↗ | tags: #cost-functions #model-selection

Implements two strategies for generating changepoint candidates: gradient-based and histogram-based. The module is self-contained (imports numpy, pandas, scipy) and can be reused in any time series segmentation task. The parameterized approach allows control over number of proposals and strategy selection.

file: ThymeBoost/split_proposals.py ↗ | tags: #changepoint-detection #strategy-pattern
Last analyzed: 2026-09-24 10:40:19.103993
Next check: 2026-10-24 10:40:19.108083
$ submit: