A modern, weighted k-nearest neighbors algorithm with learned feature importance and fast CPU inference.
Project description
SmartKNN
A modern, weighted nearest-neighbor learning algorithm with learned feature importance and adaptive neighbor search.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1191e2b612d670530e13bf0e06b1b44e906d0f5c1223ce0cb288522452a3b74b
|
|
| MD5 |
85504ce06d8e70244d80507dfac6841e
|
|
| BLAKE2b-256 |
ea9e3d5edd717655b788ddbecb3aa56db852ec5027ea47c0d61eda1afab52546
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d538cc56f5fcef41ca6154a3c7a840f9c3a0af8cb79fad0ef7150566fa23f057
|
|
| MD5 |
65fc5dce98f2efc442ea93ea8eef011c
|
|
| BLAKE2b-256 |
40b43711a9b38c2dad8702bebabc0614a454c5375a5598da4861cb5bf9773c4d
|