A modern, weighted nearest-neighbor learning algorithm with learned feature importance and adaptive neighbor search.
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.
- 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
Detailed documentation and design notes are maintained externally. This repository README is intentionally kept concise.
Runnable examples are available in the examples/ directory:
python examples/regression_example.py
python examples/classification_example.py
- 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.
- SmartKNN v2 is stable
- API is frozen for the v2.x series (backward-compatible improvements only)
- Actively maintained
- Open to research and engineering collaboration
SmartKNN is released under the MIT License. See LICENSE for details.
