5
import numpy as np import matplotlib.pyplot as plt from collections import Counter # Generate random data and labels data = np.random.rand(100) labels = ["Class1" if x <= 0.5 else "Class2" for x in data[:50]] # Euclidean distance function def euclidean_distance(x1, x2): return abs(x1 - x2) # k-NN classifier def knn_classifier( train_data , train_labels , test_point , k ): distances = [(euclidean_distance(test_point, train_data[i]), train_labels[i]) for i in range(len(train_data))] distances.sort( key =lambda x : x[0]) k_nearest_neighbors = distances[:k] k_nearest_labels = [label for _, label in k_nearest_neighbors] return Counter(k_nearest_labels).most_common(1)[0][0] train_data = data[:50] train_labels = labels test_data = data[50:] k_values = [1, 2, 3, 4, 5, 20, 30] print("--- k-Nearest Neighbors Classification ---") print("Training dataset: First 50 points labeled based on the rule (x <= 0.5 -> ...