Menu
CoddyTech

méthode fit

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

 

Source : Wikipedia

challenge icon

Défi

Difficile

Implémentez la méthode fit et la méthode find_cluster_centroid. La méthode find_cluster_centroid trouve le centroïde d'une liste de points donnée (cluster). Les instructions sur la façon de trouver le centroïde se trouvent dans la leçon précédente. Pour implémenter fit, suivez ces instructions :

  1. Initialiser les centroïdes : Tout d'abord, choisissez k points comme centroïdes initiaux à partir du jeu de données. Pour réussir les cas de test, choisissez les 3ème, 5ème, 7ème, 9ème, … points comme centroïdes initiaux (en fonction du nombre de points k)
  2. Assigner les clusters : Pour chaque point du jeu de données, trouvez le centroïde le plus proche (en utilisant des mesures de distance telles que la distance euclidienne) et assignez le point à ce cluster.
  3. Mettre à jour les centroïdes : Une fois que tous les points sont assignés aux clusters, recalculez les centroïdes en prenant la moyenne de tous les points de chaque cluster.
  4. Répéter les étapes 2 et 3 : Les étapes ci-dessus sont répétées jusqu'à ce que les centroïdes ne changent plus de manière significative. Si la distance entre le nouveau centroïde et le centroïde précédent est inférieure à 0.01, arrêtez.

Comment réussir les cas de test :

  • Enregistrez les centroïdes dans la variable self.centroids.
  • Une fois que vous avez trouvé de nouveaux centroïdes, si la distance totale entre les nouveaux centroïdes et les précédents est inférieure à 0.01, conservez les centroïdes précédents.
  • L'ordre des centroïdes est important. Itérez toujours sur les centroïdes du début à la fin.
  • Les cas de test afficheront self.centroids et valideront s'ils sont corrects.

Essayez vous-même

def euclidian_distance(point_a, point_b):
    return (sum([(point_a[i] - point_b[i])**2 for i in range(len(point_a))]))**0.5


    
class KMeans:
    def __init__(self, k):
        self.k = k

    def find_cluster_centroid(self, cluster_points):
    # Écrivez votre code ici

    def fit(self, X_train):
        # Écrivez votre code ici
        self.centroids = ...
    
    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