A Python library for Boolean Matrix Factorization
Project description
PyBMF
A Python library for Boolean Matrix Factorization. Work under Preferred.ai.
PyBMF is under active development. We welcome the authors of BMF papers and those interested in BMF to play around and contribute. Please contact us if you have any questions or suggestions.
Prospectives
Boolean matrix factorization (BMF) is a well-known problem in pattern mining. Throughout the years of prosperous research, it has evolved from greedy heuristics to include a wide range of advanced technologies. We hold the belief that a playground with fairness and adaptiveness is necessary for the development of such algorithms.
PyBMF aims to provide a unified framework with:
- generators for various types of synthetic data
- unified ways of importing real-world data
- data splitting and cross-validation utilities
- negative sampling utilities for continuous methods
- the ability to utilize sparse matrices for heuristics
- evaluation tools for binary and continuous metrics
- visualization tools for single or multi-matrix data
- tools for saving and loading models and logs
- ability to incorporate Boolean matrix simplification and visualization models
Models
Category | Model | Paper | Original Implementation | In PyBMF |
---|---|---|---|---|
Heuristics | Asso | PKDD2006 TKDE2008 | C | ✅ |
Heuristics | Hyper/Hyper+ | SIGKDD2011 | ✅ | |
Heuristics | GreConD | JCSS2010 | MATLAB | ✅ |
Heuristics | Panda | ICDM2010 | ✅ | |
Heuristics | Panda+ | TKDE2013 | ✅ | |
Heuristics | NASSAU | SDM2015 | link | |
Heuristics | GreConD+ | DAM2018 | MATLAB | ✅ |
Heuristics | MEBF | AAAI2020 | R | ✅ |
Continuous | NMFSklearn | 🛞 Wrapper of sklearn.nmf | ||
Continuous | WNMF | ✅ Multiplicative update | ||
Continuous | BinaryMF-Penalty | ICDM2007 | MATLAB | ✅ Multiplicative update |
Continuous | BinaryMF-Thresholding | ICDM2007 | MATLAB | ✅ Line search |
Continuous | FastStep | PAKDD2016 | C++ | ✅ Line search |
Continuous | PRIMP | DMKD2017 | CUDA C++ | ✅ PALM |
Continuous | PNL-PF | SP2021 | ✅ Multiplicative update | |
Continuous | ELBMF | NIPS2022 | Julia Python | ✅ PALM |
Probablistic | MessagePassing | ICML2016 | Python | 🛞 Wrapper of original implementation |
Probablistic | OrMachine | ICLM2017 | Cython | 🛞 Wrapper of original implementation |
Linear Optimization | ColumnGeneration | AAAI2021 | Python | 🛞 Wrapper of original implementation |
Satisfiability | UndercoverBMF | AAAI2021 | C++ | 🛞 Wrapper of original implementation |
Simplification | IterEss | IS2019 | ||
Simplification | DelegationBMF | AAAI2024 | C++ | |
Visualization | OrderedBMF | SIAM2019 | C++ | |
Visualization | BiclusterVisualization | PKDD2023 | Python |
Compatibility
Currently built and tested on Python 3.9.18.
TODO
- Add mask parameter W to PRIMP and ELBMF
- Fix DataFrame display utils in dataframe_utils.py
- Include BMF visualization models
- Diagnosis of thresholding models
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
File details
Details for the file pybmf-0.0.1.tar.gz
.
File metadata
- Download URL: pybmf-0.0.1.tar.gz
- Upload date:
- Size: 95.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | add02cbf286e32084601cb697fc877255cfb7758d75e259e611bf0f58fa38690 |
|
MD5 | 4ba504ea1cc11729b6dae69207b23fe7 |
|
BLAKE2b-256 | 7a1934aa919bb0d62a6d288909d6e996332deab49bbf5ae8512e894ecfa0a40d |
File details
Details for the file PyBMF-0.0.1-py3-none-any.whl
.
File metadata
- Download URL: PyBMF-0.0.1-py3-none-any.whl
- Upload date:
- Size: 139.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c81c1653c88c99d65a05810122f8cae54fa61c430c939f5d42bfde1f63dbc597 |
|
MD5 | aa2ba50320b00b2be6199ec49e5ef413 |
|
BLAKE2b-256 | a4e50192268b304bbd38efa2caf0af7c775e57f74db79521c13b3eef87e1da7c |