Méthode predict
Leçon 8 sur 19 du cours Introduction à l’apprentissage automatique de Coddy.
Défi
MoyenComplétez la méthode predict.
La méthode doit prendre une liste de X nouveaux points.
Pour chaque nouveau point, calculez la distance entre ce point et tous les autres points stockés dans self.points. Extrayez les étiquettes des self.k points les plus proches.
Trouvez l'étiquette majoritaire parmi les points les plus proches, celle-ci sera la classe prédite.
Par exemple, voici nos points et nos étiquettes :
| points | (1, 5) | (5, 0) | (3, 2) | (8, 1) | (4, 4) | (7, 7) |
| labels | A | B | A | B | C | A |
Voici un nouveau point (3, 3)
La distance entre ce point et tous les autres points est :
| points | (1, 5) | (5, 0) | (3, 2) | (8, 1) | (4, 4) | (7, 7) |
| distance from (3, 3) | 8 | 13 | 1 | 29 | 2 | 32 |
| labels | A | B | A | B | C | A |
Maintenant, si k = 3, nous devons trouver les 3 points les plus proches de notre nouveau point. Voici les plus proches : (3, 2), (1, 5), et (4, 4). Les étiquettes correspondant à ces points sont : A, A, C. Nous avons 2 A et 1 C. A est la majorité, donc le nouveau point est classé comme A.
La méthode predict doit retourner une liste d'étiquettes qui ont été classées pour les nouveaux points.
Pour trouver l'étiquette majoritaire d'une liste d'étiquettes, utilisez : max(set(labels), key = labels.count)
Essayez vous-même
class KNN:
def __init__(self, k):
self.points = None
self.labels = None
self.k = k
def distance(self, point_a, point_b):
# Write your code here
return (sum([(point_a[i] - point_b[i])**2 for i in range(len(point_a))]))**0.5
def fit(self, X_train, y_train):
# Write your code here
self.points = X_train
self.labels = y_train
def predict(self, X_test):
passToutes les leçons de Introduction à l’apprentissage automatique
1Le début du parcours en ML
Introduction au MLLes données à fournir à un modèleQu’est-ce qu’un modèle de ML ?Entraînez-vous par vous-même : Compilateur Python en ligne