Skip to main content

n-SBC: A novel machine learning model

Project description

n-SBC

A lazy machine learning classifier based on Hamming similarity over Gray-coded binary representations. Scikit-learn compatible.

Velazquez-Gonzalez, O., Alarcon-Paredes, A., & Yanez-Marquez, C. (2026). Medical pattern classification using a novel binary similarity approach based on an associative classifier. Frontiers in Artificial Intelligence, 8. DOI: 10.3389/frai.2025.1610856

Installation

pip install nsbc

Quick Start

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from nsbc import NSBCClassifier

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, random_state=42)

clf = NSBCClassifier(n_value=3, decimals=2, factor=10)
clf.fit(X_train, y_train)

print(f"Accuracy: {clf.score(X_test, y_test):.2%}")

Parameters

Parameter Type Default Description
n_value int 3 Number of top-u similar samples per class
decimals int 2 Decimal places for rounding during normalization
factor int 10 Multiplicative factor applied after rounding

Examples

In examples/ will contain examples of how to use the nsbc package, how to train and save the model, how to update it with new data (without requiring a costly training process), and how to load the model to make predictions.

TODO:

In next packege release new functions will be added to visualize the model's explainability, making it completely transparent to human understanding. This will allow us to understand the specific reasons or feartures that influenced the model's classification.

How It Works

n-SBC is a lazy learner: it stores the entire training set encoded as Gray-coded binary vectors. At prediction time, it computes the Hamming similarity between a new sample and every training sample, sums the top-u similarities per class, and predicts the class with the highest aggregate similarity. The Gray code encoding ensures that numerically close values differ by only one bit, preserving ordinal relationships in the binary representation.

Citation

If you use n-SBC in your research, please cite:

@article{velazquez2026medical,
  title={Medical pattern classification using a novel binary similarity approach based on an associative classifier},
  author={Velazquez-Gonzalez, Osvaldo and Alarc{\'o}n-Paredes, Antonio and Ya{\~n}ez-Marquez, Cornelio},
  journal={Frontiers in Artificial Intelligence},
  volume={8},
  year={2026},
  month={1},
  doi={10.3389/frai.2025.1610856}
}

License

MIT -- see LICENSE for details.

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

nsbc-1.0.0.tar.gz (16.0 kB view details)

Uploaded Source

Built Distribution

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

nsbc-1.0.0-py3-none-any.whl (14.4 kB view details)

Uploaded Python 3

File details

Details for the file nsbc-1.0.0.tar.gz.

File metadata

  • Download URL: nsbc-1.0.0.tar.gz
  • Upload date:
  • Size: 16.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for nsbc-1.0.0.tar.gz
Algorithm Hash digest
SHA256 ce784cc6dd442cb37ddc4400b4bec8875b2152a01e95e5c6c80b9546aadb1d10
MD5 ac5365745f5685c49879c7e0322855e6
BLAKE2b-256 97a4cb00477a7fa362753b2ceef269e50a22277d8bace42f73a93f75cd8fbb4a

See more details on using hashes here.

Provenance

The following attestation bundles were made for nsbc-1.0.0.tar.gz:

Publisher: publish.yml on valdolab/n-sbc

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

File details

Details for the file nsbc-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: nsbc-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 14.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for nsbc-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ce5c3613c29ed67332f8d345d91d3f204ba8034084279643fe43597e29e1fca4
MD5 b7c03021866f7f7beb147bc8c71a2c5b
BLAKE2b-256 a53a189195b53bf4c96f0dd2e974c55b4ad3cb6a9a55b5a6aaa22899f8adde74

See more details on using hashes here.

Provenance

The following attestation bundles were made for nsbc-1.0.0-py3-none-any.whl:

Publisher: publish.yml on valdolab/n-sbc

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