This is a python implementation of Fuzzy KNN Algorithm. For more details or in-depth explanation look at this research paper A Fuzzy K-nearest Neighbor Algorithm by J.M Keller, M.R. Grey and J.A. Givens.
The main Fuzzy-KNN algorithm is implemented as a class named FuzzyKNN, which resides in fknn.py. This class is implemented using scikit-learn's API. It inherits from BaseEstimator, ClassifierMixin and follows sklearn guidelines which allows it to be used as regular sklearn Estimator, making it useful as it can be used with sklearn's API.
A Jupyter Python Notebook is provided which also contains the implementation of FuzzyKNN for experimentation purposes. In this notebook accuracy of sklearn's KNeighborsClassifier is compared with FuzzyKNN on toy datasets like IRIS and Breast Cancer.
If you like this repo, look at this machine-learning-algorithms, where I implement various machine-learning algorithms as sklearn Estimators, and compares the accuracy of our custom implementation with sklearn's inbuilt implementations. Our custom implementations are commented for tutorial purposes, along with mathematics behind these algorithms.