K-Nearest Neighbors

medium · classification, knn, distance

K-Nearest Neighbors

Implement a K-nearest neighbors classifier from scratch.

Functions to implement

1. euclidean_distance(a, b)

Compute distance between two vectors.

2. get_neighbors(X_train, y_train, x_query, k)

Find k nearest neighbors.

  • Input: Training data, training labels, query point, k
  • Output: List of (distance, label) tuples for k nearest

3. predict_single(X_train, y_train, x_query, k)

Predict label for a single query point.

  • Returns most common label among k neighbors

4. predict(X_train, y_train, X_test, k)

Predict labels for multiple test points.

Examples

X_train = [[0, 0], [1, 1], [2, 2], [3, 3]]
y_train = [0, 0, 1, 1]
X_test = [[1.5, 1.5]]
predict(X_train, y_train, X_test, k=3)  # [1]
Run tests to see results
No issues detected