INNER CODE UNIT · Python

KNN

ankonzoid/LearningX · basic_ML/classification/knn.py:10

class KNN():

    def __init__(self, k=10):
        self.k = k

    def fit(self, X, y):
        self.X_train = X
        self.y_train = y

    def predict(self, X):
        # Assign class labels to data based on closest distance to cluster centers
        N, d = X.shape
        y_pred = -1 * np.zeros(len(X), dtype=int)
        for i in range(N):
            neg_distances = -np.array([np.linalg.norm(X[i] - x_train_j) for x_train_j in self.X_train])
            idx_topk = neg_distances.argsort()[-self.k:][::-1]  # top-k samples in negative distance
            nearby_classes = list(self.y_train[idx_topk])
            y_pred[i] = int(max(set(nearby_classes), key=nearby_classes.count))  # predict modal class

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…