Menu
CoddyTech

fit-Methode

Lektion 10 von 19 im Kurs Einführung in maschinelles Lernen von Coddy.

 

Quelle: Wikipedia

challenge icon

Aufgabe

Schwer

Implementieren Sie die Methode fit und die Methode find_cluster_centroid. Die Methode find_cluster_centroid findet den Zentroiden einer gegebenen Liste von Punkten (Cluster). Die Anweisungen zum Finden des Zentroiden finden Sie in der vorherigen Lektion. Um fit zu implementieren, folgen Sie diesen Anweisungen:

  1. Zentroiden initialisieren: Wählen Sie zuerst k Punkte aus dem Datensatz als initiale Zentroiden aus. Um die Testfälle zu bestehen, wählen Sie den 3., 5., 7., 9., … Punkt als initiale Zentroiden (abhängig von k Punkten).
  2. Cluster zuweisen: Finden Sie für jeden Punkt im Datensatz den nächstgelegenen Zentroiden (unter Verwendung von Distanzmaßen wie der euklidischen Distanz) und weisen Sie den Punkt diesem Cluster zu.
  3. Zentroiden aktualisieren: Sobald alle Punkte den Clustern zugewiesen sind, berechnen Sie die Zentroiden neu, indem Sie den Mittelwert aller Punkte in jedem Cluster bilden.
  4. Schritte 2 und 3 wiederholen: Die obigen Schritte werden wiederholt, bis sich die Zentroiden nicht mehr signifikant ändern. Wenn der Abstand zwischen dem neuen Zentroiden und dem vorherigen Zentroiden weniger als 0.01 beträgt, stoppen Sie.

So bestehen Sie die Testfälle:

  • Speichern Sie die Zentroiden in der Variable self.centroids.
  • Sobald Sie neue Zentroiden finden und die Gesamtdistanz zwischen den neuen Zentroiden und den vorherigen weniger als 0.01 beträgt, behalten Sie die vorherigen Zentroiden bei.
  • Die Reihenfolge der Zentroiden ist wichtig. Iterieren Sie immer von Anfang bis Ende über die Zentroiden.
  • Die Testfälle geben self.centroids aus und validieren, ob sie korrekt sind.

Probier es selbst

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):
    # Schreibe deinen Code hier

    def fit(self, X_train):
        # Schreibe deinen Code hier
        self.centroids = ...
    
    def predict(self, X_test):
        pass

Alle Lektionen in Einführung in maschinelles Lernen

Übe selbstständig: Online-Python-Compiler