Skip to main content

A modern, weighted k-nearest neighbors algorithm with learned feature importance and fast CPU inference.

Project description

SmartKNN logo

SmartKNN

A modern, weighted nearest-neighbor learning algorithm with learned feature importance and adaptive neighbor search.

Website PyPI version Python versions CI status MIT License

Overview

SmartKNN is a nearest-neighbor–based learning method that belongs to the broader KNN family of algorithms.

It is designed to address common limitations observed in classical KNN approaches, including:

  • uniform treatment of all features
  • sensitivity to noisy or weakly informative dimensions
  • limited scalability as dataset size grows

SmartKNN incorporates data-driven feature importance estimation, dimension suppression, and adaptive neighbor search strategies. Depending on dataset characteristics, it can operate using either a brute-force search or an approximate nearest-neighbor (ANN) backend, while exposing a consistent, scikit-learn–compatible API.

The method supports both regression and classification tasks and prioritizes robustness, predictive accuracy, and practical inference latency across a range of dataset sizes.


Key Capabilities

  • Learned feature weighting
    • MSE relevance
    • Mutual Information
    • Random Forest importance
      (method configurable depending on task and dataset)
  • Automatic preprocessing
    • normalization
    • NaN / Inf handling
    • feature masking
  • Distance-weighted neighbor voting
  • Brute-force and ANN backends
    • designed to scale to large datasets (hardware and tuning dependent)
    • optional GPU-accelerated neighbor search
  • Vectorized NumPy with Numba acceleration
  • Scikit-learn–compatible API

Installation

pip install smart-knn

Documentation

Detailed documentation and design notes are maintained externally. This repository README is intentionally kept concise.


Examples

Runnable examples are available in the examples/ directory:

python examples/regression_example.py
python examples/classification_example.py

Benchmarks & CI

  • Comprehensive benchmark suites for regression and classification
  • GitHub Actions CI for tests and benchmarks
  • Reproducible, engineering-focused evaluation

Benchmark details are documented in benchmarks/README.md.


Project Status

  • SmartKNN v2 is stable
  • API is frozen for the v2.x series (backward-compatible improvements only)
  • Actively maintained
  • Open to research and engineering collaboration

License

SmartKNN is released under the MIT License. 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

smart_knn-0.2.2.tar.gz (18.0 kB view details)

Uploaded Source

Built Distribution

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

smart_knn-0.2.2-py3-none-any.whl (16.6 kB view details)

Uploaded Python 3

File details

Details for the file smart_knn-0.2.2.tar.gz.

File metadata

  • Download URL: smart_knn-0.2.2.tar.gz
  • Upload date:
  • Size: 18.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.0

File hashes

Hashes for smart_knn-0.2.2.tar.gz
Algorithm Hash digest
SHA256 1191e2b612d670530e13bf0e06b1b44e906d0f5c1223ce0cb288522452a3b74b
MD5 85504ce06d8e70244d80507dfac6841e
BLAKE2b-256 ea9e3d5edd717655b788ddbecb3aa56db852ec5027ea47c0d61eda1afab52546

See more details on using hashes here.

File details

Details for the file smart_knn-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: smart_knn-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 16.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.0

File hashes

Hashes for smart_knn-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d538cc56f5fcef41ca6154a3c7a840f9c3a0af8cb79fad0ef7150566fa23f057
MD5 65fc5dce98f2efc442ea93ea8eef011c
BLAKE2b-256 40b43711a9b38c2dad8702bebabc0614a454c5375a5598da4861cb5bf9773c4d

See more details on using hashes here.

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