belgo-classifier / README.md
githubDCS's picture
v4.6.1: audited real data, NLEmbedding 512-dim; remove defective MiniLM v4.5.0
e5bb8a8 verified
|
Raw
History Blame Contribute Delete
1.86 kB
---
license: mit
tags:
- coreml
- text-classification
- finance
- belgium
---
# BelgoClassifier β€” Belgian bank-transaction categorizer (Core ML)
**⚠️ Archive channel.** This repository is a public archive of the Stay Steady
app's on-device transaction classifier. The app itself distributes models via
its own backend β€” files here are for reference and research, not consumed by
any released app.
## Current model: v4.6.1 (2026-07-20)
`BelgoClassifier_v4.6.1.mlmodelc.zip` β€” classifier head over **Apple
NLEmbedding sentence embeddings (512-dim, English)**. 34 spending categories.
Trained on 21,565 samples: synthetic Belgian transaction text plus manually
audited real bank transactions (personal/P2P counterparties excluded, merchant
names canonicalized β€” branch towns, store numbers and card fragments stripped).
Training accuracy 99.38%.
**Runtime contract:** embed input text with
`NLEmbedding.sentenceEmbedding(for: .english)` (512-dim), UPPERCASE,
diacritics folded, merchant canonicalized. Input tensor `embeddings`
`[1, 512] Float32`; output `probabilities` over 34 classes.
## ⚠️ v4.5.0 is defective β€” do not use
`BelgoClassifier_v4.5.0.mlmodelc.zip` has been **removed** from this
repository. It was trained by a different pipeline against
`all-MiniLM-L6-v2` embeddings (**384-dim**) and therefore cannot score
NLEmbedding vectors at all; it also measured only 86.7% validation accuracy
and carried a merchant+location labeling bias. If you have a cached copy,
discard it.
## Version history
| Version | Embeddings | Notes |
|---|---|---|
| 4.6.1 | NLEmbedding 512 | Audited real data, canonicalized merchants β€” current |
| ~~4.5.0~~ | MiniLM 384 | **Defective, removed** (wrong pipeline, 86.7%) |
| 2.2.0 | NLEmbedding 512 | First NLEmbedding retrain |
| 2.1.0 / 1.0.0 | β€” | Early iterations, archive only |