Skip to main content

PyLWL: A Python Framework for Locally Weighted Learning

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


📌 Overview

PyLWL is an open-source Python library that provides a unified, extensible, and user-friendly implementation of Locally Weighted Learning (LWL) algorithms for supervised learning. It implements differentiable and gradient-descent-based local models for both classification and regression tasks.

Features

  • 📌 GdLwClassifier: Local weighted classifier using logistic regression with support for binary and multiclass classification.
  • 📌 GdLwRegressor: Local weighted regressor using linear regression optimized with MSE loss.
  • 📌 LwClassifier and LwRegressor: Local weighted classifier/regressor with a fixed kernel.
  • 🧠 Supports any differentiable kernel function (e.g., Gaussian, Epanechnikov).
  • ⚙️ Built with PyTorch, and fully compatible with Scikit-Learn pipeline and metrics.
  • 🔧 Configurable optimizer (Adam, SGD, etc.) and hyperparameters.
  • 🔍 Built-in support for model evaluation and scoring.

📖 Citation Request

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

@software{thieu20250517PyLWL,
  author       = {Nguyen Van Thieu},
  title        = {PyLWL: A Python Framework for Locally Weighted Learning},
  month        = June,
  year         = 2025,
  doi         = {10.6084/m9.figshare.29089784},
  url          = {https://github.com/thieu1995/PyLWL}
}

📦 Installation

Install the latest version from PyPI:

pip install pylwl

Verify installation:

$ python
>>> import pylwl
>>> pylwl.__version__

🚀 Quick Start

Classification

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from pylwl import LwClassifier

# 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 = LwClassifier(kernel="gaussian", tau=1.0)
model.fit(X_train, y_train)

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

Regression

from sklearn.datasets import fetch_california_housing
from sklearn.model_selection import train_test_split
from pylwl import LwRegressor

X, y = fetch_california_housing(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)

reg = LwRegressor(kernel='gaussian', tau=1.0)
reg.fit(X_train, y_train)
print("R2 score:", reg.score(X_test, y_test))

Please read the examples folder for more use cases.

📚 Documentation

Documentation is available at: 👉 https://pylwl.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 PyLWL! 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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pylwl-0.2.0.tar.gz (36.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pylwl-0.2.0-py3-none-any.whl (34.5 kB view details)

Uploaded Python 3

File details

Details for the file pylwl-0.2.0.tar.gz.

File metadata

  • Download URL: pylwl-0.2.0.tar.gz
  • Upload date:
  • Size: 36.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pylwl-0.2.0.tar.gz
Algorithm Hash digest
SHA256 9b04484dce4c76d16fb77d4a985e05ace38501b4a1defd91307bdb76f6f63bd7
MD5 53ca3bf73a0831dbfeb40d95efb14ea1
BLAKE2b-256 130a0b4a9390ab6fa369ac3e4ec78da3b992effff6f77f39300aa3f95d90a758

See more details on using hashes here.

Provenance

The following attestation bundles were made for pylwl-0.2.0.tar.gz:

Publisher: publish-package.yml on thieu1995/PyLWL

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pylwl-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: pylwl-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 34.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pylwl-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4269c2b78f13390363961c487d3713ca3a2f450609cc48a19b59c8fe9899384e
MD5 041772db64582f3a07475eb924529756
BLAKE2b-256 52031b14e269d05cab4aea700fb0b426f3c831e380e165cb39ad1591bec32cae

See more details on using hashes here.

Provenance

The following attestation bundles were made for pylwl-0.2.0-py3-none-any.whl:

Publisher: publish-package.yml on thieu1995/PyLWL

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page