ProbNet: A Unified Probabilistic Neural Network Framework for Classification and Regression Tasks
🌟 Overview
ProbNet is a lightweight and extensible Python library that provides a unified implementation of Probabilistic Neural Network (PNN) and its key variant, the General Regression Neural Network (GRNN). It supports both classification and regression tasks, making it suitable for a wide range of supervised learning applications.
🔧 Features
- 🧠 Full implementation of PNN for classification
- 📈 GRNN for regression modeling
- 🔍 Scikit-learn compatible interface (
fit,predict,score) - 🔄 Built-in support for many kernels and distance metrics
- 🧪 Fast prototyping and evaluation
- 🧩 Easily extendable and readable codebase
- 📚 Auto-generated documentation with Sphinx
- Probabilistic models:
PnnClassifier,GrnnRegressor
📖 Citation Request
Please include these citations if you plan to use this library:
@software{thieu20250503,
author = {Nguyen Van Thieu},
title = {ProbNet: A Unified Probabilistic Neural Network Framework for Classification and Regression Tasks},
month = may,
year = 2025,
doi = {10.6084/m9.figshare.28802435},
url = {https://github.com/thieu1995/ProbNet}
}
📦 Installation
Install the latest version using pip:
pip install probnet
After installation, check the version to ensure successful installation:
$ python
>>> import probnet
>>> probnet.__version__
🚀 Quick Start
For Classification using PNN:
from probnet import PnnClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
X, y = load_iris(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
model = PnnClassifier(sigma=0.1)
model.fit(X_train, y_train)
print("Accuracy:", model.score(X_test, y_test))
For Regression using GRNN:
from probnet import GrnnRegressor
from sklearn.datasets import load_diabetes
from sklearn.model_selection import train_test_split
X, y = load_diabetes(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
model = GrnnRegressor(sigma=0.5)
model.fit(X_train, y_train)
print("R2 Score:", model.score(X_test, y_test))
📚 Documentation
Documentation is available at: 👉 https://probnet.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 ProbNet! 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
- 🔗 Official source code repository
- 📘 Official document
- 📦 Download releases
- 🐞 Issue tracker
- 📝 Notable changes log
- 💬 Official discussion group
Developed by: Thieu @ 2025
Metadata
Release files for probnet 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| probnet-0.2.0.tar.gz | 37.3 kB | With provenance | Details for probnet-0.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| probnet-0.2.0-py3-none-any.whl | Python 3 | none | any | Details for probnet-0.2.0-py3-none-any.whl |
Total release size: 73.6 kB
Release files / probnet-0.2.0.tar.gz
| Download URL | probnet-0.2.0.tar.gz |
|---|---|
| Size | 37.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8d4880307f15f89712fd10b37730a39625d964f27e7df7372f7fac7f490c415a
|
|
BLAKE2b-256 checksum How to use checksums |
60f9020e31c04c9a06974d44080ef16bcc5a101d1afeec2a9837d832e443a19a
|
| 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 logRelease files / probnet-0.2.0-py3-none-any.whl
| Download URL | probnet-0.2.0-py3-none-any.whl |
|---|---|
| Size | 36.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ba4ac73ab78073e383a6c9abac95c96b65e8fe09c3f22683fe2fcccadc737bc2
|
|
BLAKE2b-256 checksum How to use checksums |
d6e489d69705f14f666a55d691e7ac8038a72f2e99e2cd4d35f420520a1e1271
|
| 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 logSecurity for probnet 0.2.0
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.
Full provenance
Both files in this release have been uploaded with provenance metadata.
Attestation for probnet-0.2.0.tar.gz
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 logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.