Menu
CoddyTech

Méthode predict

Leçon 8 sur 19 du cours Introduction à l’apprentissage automatique de Coddy.

challenge icon

Défi

Moyen

Complé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)
labelsABABCA

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)813129232
labelsABABCA

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):
        pass

Toutes les leçons de Introduction à l’apprentissage automatique

Entraînez-vous par vous-même : Compilateur Python en ligne