jax implementation of robust heteroskedastic matrix factorisation. Robusta like the coffee bean, get it?
Easiest is from PyPI either with pip
pip install robusta-hmfor uv (recommended)
uv add robusta-hmfOr, you can clone and build from source
git clone [email protected]:TomHilder/robusta-hmf.git
cd robusta-hmf
pip install -e .TODO
TODO
TODO
- Port Hogg's existing code and make sure it builds/installs*
- Port to
equinox* - Type checking with
mypy* - Add dependency injection for the following:*
- Optimisation method, IRLS, SGD (directly optimising objective, see robust_hmf_notes.pdf)
- Potentially
daskand batching support for SGD
- Potentially
- w-steps. Each w-step corresponds to a different likelihood. Hogg's is Cauchy. We should let this flexible*
- Initialisation.
- Re-orientation. Can easily imagine wanting something cheaper for really big data.
- Optimisation method, IRLS, SGD (directly optimising objective, see robust_hmf_notes.pdf)
- Add a save and restore method. Probably avoid pickle/dill and instead encapsulate info in serialisable way and then rebuild model upon loading
- Eh maybe, maybe not
- Tests!*
- CI, automated tests, automated relases, and PyPI*
- Relax version requirements since uv by default is newest everything
(*) = Priority