The CDNN algorithm is proposed in the paper Robust Biometric Recognition From Palm Depth Images for Gloved Hands. This paper presents a simple yet efficient variant of the CDNN algorithm, named Ensemble Centroid Displacement-based
The repositry includes:
- Native Python implementations of ECDNN alongside a flexible framework for adapting different distance metrics.
- Examples of using ECDNN
- A comparision between ECDNN and tradditional k-NN algorithm on some sample datasets
- A comparision of using different distance metrics with ECDNN
Please refer to example.ipynb for examples.
A sample result will look like this:
Testing with k = 21
---------------Digits dataset------------------
Loading data.....
Done loading data!
Number of classes: 10
Data dimension: 64
Number of training samples: 1437
Number of testing samples: 360
Predict time for ECDNN: 0.050s
Accuracy for ECDNN with k = 21: 0.992
Predict time for kNN with uniform weights: 0.025s
Accuracy for kNN with k = 21 and uniform weights: 0.978
Predict time for kNN with distance weights: 0.015s
Accuracy for kNN with k = 21 and distance weights: 0.983
If you use this code or ECDNN algorithm for your research, please cite this paper.
@article{wang2023ensemble,
title={Ensemble k-nearest neighbors based on centroid displacement},
author={Wang, Alex X and Chukova, Stefanka S and Nguyen, Binh P},
journal={Information Sciences},
volume={629},
pages={313--323},
year={2023},
doi={10.1016/j.ins.2023.02.004},
publisher={Elsevier}
}