```
#Importing the required modules
import numpy as np
from scipy.stats import mode
#Euclidean Distance
def eucledian(p1,p2):
dist = np.sqrt(np.sum((p1-p2)**2))
return dist
#Function to calculate KNN
def predict(x_train, y , x_input, k):
op_labels = []
#Loop through the Datapoints to be classified
for item in x_input:
#Array to store distances
point_dist = []
#Loop through each training Data
for j in range(len(x_train)):
distances = eucledian(np.array(x_train[j,:]) , item)
#Calculating the distance
point_dist.append(distances)
point_dist = np.array(point_dist)
#Sorting the array while preserving the index
#Keeping the first K datapoints
dist = np.argsort(point_dist)[:k]
#Labels of the K datapoints from above
labels = y[dist]
#Majority voting
lab = mode(labels)
lab = lab.mode[0]
op_labels.append(lab)
return op_labels
```

Interactive Graph

Table Of Contents