🕸️ Araxia
Araxia is a lightweight, customizable time series forecasting model tailored for structured datasets like grocery store sales. Inspired by the structure of spider webs and powered by neural networks, Araxia makes forecasting intuitive, modular, and fun.
“Pattern is the web. Prediction is the spider.” — Araxia Philosophy
🧠 Features
- 🔁 Lagged features with flexible windowing
- 📅 Time-aware feature engineering (cyclic time, dates, day-of-week)
- 🕸️ Neural network forecaster (built with NumPy from scratch)
- 🧪 Easy backtesting on training data
- 📈 Built-in plot support for forecasts
- 🧩 Modular: plug in your own preprocessing or model layers
- ✅ Lightweight with no heavy dependencies
🚀 Installation
pip install araxia
Or if you are developing locally:
git clone https://github.com/your-username/araxia.git
cd araxia
pip install -e .
if You want to run the locally installed dev environment
pip install -e .
📦 Quickstart
from araxia import create_lagged_dataset, create_dataset_with_cyclic_features
from araxia import AraxiaForecaster
Load your time series data (must include a datetime column and target)
df = your_dataframe[['date', 'sales']]
Create features
df_feat = create_lagged_dataset(df, target='sales', lags=[1, 7, 14])
df_feat = create_dataset_with_cyclic_features(df_feat, date_col='date')
Train-test split
train = df_feat.iloc[:-30]
test = df_feat.iloc[-30:]
Fit model
model = AraxiaForecaster(hidden_sizes=[16, 8], epochs=500, learning_rate=0.01)
model.fit(train.drop(columns='sales'), train['sales'])
Predict
forecast = model.predict(test.drop(columns='sales'))
Plot
model.plot(train['sales'], forecast, title="Araxia Forecast")
🧰 Core Modules
| Module | Purpose |
|---|---|
create_lagged_dataset |
Generate lag features (e.g., 1-day, 7-day lags) |
create_dataset_with_cyclic_features |
Add sine/cosine encodings for day/month/year |
create_dataset_with_date_features |
Add year, month, day columns |
create_dataset_with_onehot_dow |
One-hot encode day-of-week |
AraxiaForecaster |
Custom NumPy-based feedforward network |
⚙️ Customize
Araxia is modular! Replace or enhance the following:
- Use your own preprocessing logic
- Swap out the NumPy model for PyTorch/TensorFlow
- Add early stopping, dropout, or regularization
- Integrate into a pipeline with sklearn
🧪 Tests
pytest
📄 License
MIT License
🤝 Contributing
Contributions welcome! Fork the repo, create a branch, and submit a PR.
Metadata
Release files for araxia 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| araxia-0.2.0.tar.gz | 8.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| araxia-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.8 kB
Release files / araxia-0.2.0.tar.gz
| Download URL | araxia-0.2.0.tar.gz |
|---|---|
| Size | 8.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4ed5c41a76623cef07a55332b0d63ee4c2c40dd869f3f98c4f9ba497359f3f5f
|
|
BLAKE2b-256 checksum How to use checksums |
3ef3938d701294b08ceed8e3ad9cd167fab0e92a2d432acb265df3ffd56d15fe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.4
|
Release files / araxia-0.2.0-py3-none-any.whl
| Download URL | araxia-0.2.0-py3-none-any.whl |
|---|---|
| Size | 9.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4fbcedda3c68cc385981da19f7ae9c1b6b4b9f88d996cabd03569273d88d3adf
|
|
BLAKE2b-256 checksum How to use checksums |
d361378e7cceb40cf37d8b08edce1bf8d254f29ebfa94e597f31e19bcbdbab3b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.4
|