Skip to main content

ProbNet: A Unified Probabilistic Neural Network Framework for Classification and Regression Tasks

Project description

ProbNet: A Unified Probabilistic Neural Network Framework for Classification and Regression Tasks

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


🌟 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


Developed by: Thieu @ 2025

Project details


Download files

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

Source Distribution

probnet-0.2.0.tar.gz (37.3 kB view details)

Uploaded Source

Built Distribution

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

probnet-0.2.0-py3-none-any.whl (36.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for probnet-0.2.0.tar.gz
Algorithm Hash digest
SHA256 8d4880307f15f89712fd10b37730a39625d964f27e7df7372f7fac7f490c415a
MD5 b0fd8a9f1d229752f2b1ca97ca397120
BLAKE2b-256 60f9020e31c04c9a06974d44080ef16bcc5a101d1afeec2a9837d832e443a19a

See more details on using hashes here.

Provenance

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

Publisher: publish-package.yml on thieu1995/ProbNet

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

File details

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

File metadata

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

File hashes

Hashes for probnet-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ba4ac73ab78073e383a6c9abac95c96b65e8fe09c3f22683fe2fcccadc737bc2
MD5 5dfd3c46f9dd3993376c3dd247f4b46e
BLAKE2b-256 d6e489d69705f14f666a55d691e7ac8038a72f2e99e2cd4d35f420520a1e1271

See more details on using hashes here.

Provenance

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

Publisher: publish-package.yml on thieu1995/ProbNet

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

Supported by

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