A minimal neural network library built from scratch for time series forecasting and analysis.
Project description
🕸️ 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 .
📦 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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file araxia-0.1.0.tar.gz.
File metadata
- Download URL: araxia-0.1.0.tar.gz
- Upload date:
- Size: 3.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
71799f0d8e7616db5b23afc98fea0d8b3d909ded4474d9e9ecd93682fc962c58
|
|
| MD5 |
5061dccac93292aa5347b04e5b861204
|
|
| BLAKE2b-256 |
d16db5dc5fd05c43cfe6e3cb006ea4d6370a41c02f694393faad8fd7488041fa
|
File details
Details for the file araxia-0.1.0-py3-none-any.whl.
File metadata
- Download URL: araxia-0.1.0-py3-none-any.whl
- Upload date:
- Size: 4.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
76b85c019f159a24e75db5f452cc48e8c11fa839d4e189b0e5598cd4140b1490
|
|
| MD5 |
577f34fcdc2de596c2fb788e7db5abb1
|
|
| BLAKE2b-256 |
b604ea86a83323f415640b8ae5f22778456b6dc513e02d76e381a780643d28ab
|