Downloads · 30 days
0
AMFORGE/tabicl-synthetics-finetuned
tabicl-synthetics-finetuned is a tabular classification model from AMFORGE. Use it for the tabular classification task on the model card, and read the license before you ship it in a product. It is set up for tabicl. The card lists the license as other.
TabICL checkpoint (Tabular Foundation Model, in-context learning) fine-tuned for trading-action prediction (Buy / Sell / Hold) on synthetic indices Deriv/Weltrade (Boom, Crash, Volatility, GainX, PainX, FlipX, FX Vol,…
Downloads · 30 days
0
Access
Public
Updated Sep 26, 2026
Repo size
172 MB
Likes
1
Public
Click a slice to open those files.
.pkl172 MB · 100%
From the Hugging Face model README
TabICL checkpoint (Tabular Foundation Model, in-context learning) fine-tuned for trading-action prediction (Buy / Sell / Hold) on synthetic indices Deriv/Weltrade (Boom, Crash, Volatility, GainX, PainX, FlipX, FX Vol, SFX Vol), intended to serve as the 5th expert inside a multi-expert EARCP ensemble. Trained separately from the Gold+BTC fine-tuning: synthetic indices have statistical properties (artificial jump/volatility processes) very different from real assets.
predict_proba() call)This checkpoint is an in-context learning model: .fit(X, y) does two things —
(1) gradient fine-tuning of the backbone (preserved by pickle) and (2) encoding of the
provided (X, y) context (_X_encoder_, NOT preserved by pickle.dump()/pickle.load()).
Practical consequence: loading tabicl_finetuned.pkl with pickle.load() succeeds
without error, but calling predict_proba() right after raises NotFittedError
(missing _X_encoder_). You must call .fit() once, with a representative context
set, right after loading — see load_reference.py in this repo for a complete script
and the exact 58-column order.
import pickle
from huggingface_hub import hf_hub_download
ckpt = hf_hub_download("AMFORGE/tabicl-synthetics-finetuned", "tabicl_finetuned.pkl")
scaler = hf_hub_download("AMFORGE/tabicl-synthetics-finetuned", "feature_scaler.pkl")
clf = pickle.load(open(ckpt, "rb"))
scl = pickle.load(open(scaler, "rb"))
# REQUIRED after every load: rebuilds the in-context encoder.
# X_context/y_context: see load_reference.py for the exact 58-column layout.
clf.fit(scl.transform(X_context), y_context)
proba = clf.predict_proba(scl.transform(X_new)) # [p_buy, p_sell, p_hold]
FinetunedTabICLClassifier — see tabicl)load_reference.py (cols 0-48 = 7 features ×
[M1,M5,M15,M30,H1,H4,D1] in this order; cols 49-57 = asset-family one-hot in the order
[boom, crash, volatility, flipx, gainx, painx, fxvol, sfxvol, other])load_reference.pyfeature_scaler.pkl) was fit on all 58 columns together (base features + one-hot) — do not refit it separately, do not scale the one-hot block apart.Overall accuracy: 0.6375
| Class | Precision | Recall | F1-score | Support |
|---|---|---|---|---|
| Buy | 0.67 | 0.77 | 0.72 | 2264 |
| Sell | 0.66 | 0.79 | 0.72 | 2291 |
| Hold | 0.42 | 0.18 | 0.26 | 1445 |
This checkpoint is designed to serve as the 5th expert in a multi-model trading
ensemble on synthetic indices, where its contribution weight is adjusted dynamically
based on its performance and consistency with the other experts. A context-rebuilding
.fit() is required after every pickle load (see section above and load_reference.py)
— this is not optional, skipping it raises NotFittedError at inference. It is not
intended for standalone trading decisions without human supervision and upstream risk
management.
.fit() is required on every load, in every new process.