Skip to main content

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 Hugging Face Demo Regression Benchmarks Classification Benchmarks

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.

Metadata

Release files for smart-knn 0.2.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for smart-knn 0.2.3
File Size Uploaded
smart_knn-0.2.3.tar.gz 19.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for smart-knn 0.2.3
File Interpreter ABI Platform
smart_knn-0.2.3-py3-none-any.whl Python 3 none any Details

Total release size: 38.4 kB

Release files / smart_knn-0.2.3.tar.gz

Download URL smart_knn-0.2.3.tar.gz
Size 19.8 kB
Tags Source
SHA-256 checksum
How to use checksums
c0bcd7de88f95c46fd542f067bf45d3bc3f20dc6b69435e987bd8edaaf69a43b
BLAKE2b-256 checksum
How to use checksums
8739b5d24c6943d47da204f0d4646f3c8de0d09e7f71ea7ca05d2fabf0c6f25e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.0

Release files / smart_knn-0.2.3-py3-none-any.whl

Download URL smart_knn-0.2.3-py3-none-any.whl
Size 18.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a9e505298b24b387ba4a3b4b327fa8579b44eb981cb425275965f5bb18c0a5c2
BLAKE2b-256 checksum
How to use checksums
56c0fd8940fe9ddc26e6ea0f97dd935bbe9b2039d5684996d29c81e38205d601
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.0

Release history Release notifications | RSS feed

This release

0.2.3 This release

2 release files

0.2.2

2 release files

0.2.1

1 release file

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page