Skip to main content

UniLVQ: A Unified Learning Vector Quantization Framework for Supervised Learning Tasks

GitHub release PyPI version PyPI - Python Version PyPI - Downloads Downloads Tests & Publishes to PyPI Documentation Status Chat DOI License: GPL v3


📌 Overview

UniLVQ is an open-source Python library that provides a unified, extensible, and user-friendly implementation of Learning Vector Quantization (LVQ) algorithms for supervised learning. It supports both classification and regression tasks, and is designed to work seamlessly with the scikit-learn API.

Built on top of NumPy and PyTorch, UniLVQ combines rule-based and neural-inspired LVQ variants, making it suitable for both research and practical applications.

🚀 Features

  • ✅ Unified base API compatible with scikit-learn
  • ✅ Traditional rule-based LVQ variants: LVQ1, LVQ2.1, LVQ3, Optimized LVQ1:
    • Lvq1Classifier, Lvq2Classifier, Lvq3Classifier, OptimizedLvq1Classifier
  • ✅ Loss-based LVQ models: GLVQ, GRLVQ, LGMLVQ (PyTorch-based):
    • GlvqClassifier, GlvqRegressor, GrlvqClassifier, GrlvqRegressor, LgmlvqClassifier
  • ✅ Support for both classification and regression
  • ✅ Built-in support for early stopping, metric evaluation, data scaling
  • ✅ Modular design for easy extension and customization
  • ✅ CI-tested, documented, and easy to use

🧠 Supported Models

Type Algorithms Module
Rule-based LVQ LVQ1, LVQ2.1, LVQ3, Optimized LVQ1 (Classifiers) classic_lvq.py
Generalized LVQ GLVQ (Classifier, Regressor) glvq.py
Generalized Relevance LVQ GRLVQ (Classifier, Regressor) grlvq.py
Local Generalized Matrix LVQ LGMLVQ (Classifier) lgmlvq.py

📖 Citation Request

Please include these citations if you plan to use this library:

@software{thieu20250515UniLVQ,
  author       = {Nguyen Van Thieu},
  title        = {UniLVQ: A Unified Learning Vector Quantization Framework for Supervised Learning Tasks},
  month        = June,
  year         = 2025,
  doi         = {10.6084/m9.figshare.28802435},
  url          = {https://github.com/thieu1995/UniLVQ}
}

📦 Installation

Install the latest version from PyPI:

pip install unilvq

Verify installation:

$ python
>>> import unilvq
>>> unilvq.__version__

🚀 Quick Start

For classification problem using LVQ1 classifier:

from unilvq import Lvq1Classifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# Load data
X, y = load_iris(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)

# Train LVQ1 model
model = Lvq1Classifier(n_prototypes_per_class=1, learning_rate=0.1, seed=42)
model.fit(X_train, y_train)

# Evaluate
y_pred = model.predict(X_test)
print("Accuracy:", accuracy_score(y_test, y_pred))

As can be seen, you do it like any model from Scikit-Learn library such as SVC, RF, DT,... Please read the examples folder for more use cases.

📚 Documentation

Documentation is available at: 👉 https://unilvq.readthedocs.io

You can build the documentation locally:

cd docs
make html

🧪 Testing

You can run unit tests using:

pytest tests/

🤝 Contributing

We welcome contributions to UniLVQ! If you have suggestions, improvements, or bug fixes, feel free to fork the repository, create a pull request, or open an issue.

📄 License

This project is licensed under the GPLv3 License. See the LICENSE file for more details.

📎 Official channels


Developed by: Thieu @ 2025

Metadata

Release files for unilvq 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for unilvq 0.2.0
File Size Uploaded
unilvq-0.2.0.tar.gz 43.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for unilvq 0.2.0
File Interpreter ABI Platform
unilvq-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 89.2 kB

Release files / unilvq-0.2.0.tar.gz

Download URL unilvq-0.2.0.tar.gz
Size 43.3 kB
Tags Source
SHA-256 checksum
How to use checksums
1a066443d6ef0a175bbb84cf7034e09d8341e669fc793a34df77cede71f00b55
BLAKE2b-256 checksum
How to use checksums
fb3d29acf96189f83efa0cf31c58005e7893280e90b08721fbd2465dd97d92ab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 5, 2025.

Transparency log

Release files / unilvq-0.2.0-py3-none-any.whl

Download URL unilvq-0.2.0-py3-none-any.whl
Size 46.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5588bd88e6d3c3f47fcad1e0e3462c67b46bd409287f4e54246b5f3fae0d11dd
BLAKE2b-256 checksum
How to use checksums
c50b8ce07e6278e3351687692ec09e64b729c54acc111cb15ba51904010b089e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 5, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page