INNER CODE UNIT · Python

fit

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

    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
        return y_pred

# Main driver
if __name__ == "__main__":
    

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…