← Tous les exercices
k plus proches voisins
Partie 2 · ★★★
Écris knn(train, labels, x, k) : trie les points d'entraînement par distance à x, garde les k plus proches et renvoie la classe majoritaire (utilise Counter). Les données : points (1,1), (1,2), (2,1) de classe "A" et (6,5), (7,7), (6,6) de classe "B".
train = [(1, 1), (1, 2), (2, 1), (6, 5), (7, 7), (6, 6)] labels = ["A", "A", "A", "B", "B", "B"] def dist(p, q): return sum((a - b) ** 2 for a, b in zip(p, q)) ** 0.5 def knn(train, labels, x, k): voisins = sorted(zip(train, labels), key=lambda t: dist(t[0], ___))[:k] return Counter(l for _, l in voisins).most_common(1)[0][___]
Ctrl/⌘+Entrée