Menu
CoddyTech

predict-Methode

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

challenge icon

Aufgabe

Mittel

Füllen Sie die Methode predict aus.

Die Methode sollte eine Liste von X neuen Punkten entgegennehmen.

Berechnen Sie für jeden neuen Punkt den Abstand zwischen diesem Punkt und allen anderen in self.points gespeicherten Punkten. Extrahieren Sie die Labels der self.k am nächsten gelegenen Punkte.

Finden Sie das Mehrheitslabel unter den nächstgelegenen Punkten; dies wird die vorhergesagte Klasse sein.

Hier sind zum Beispiel unsere Punkte und Labels:

points(1, 5)(5, 0)(3, 2)(8, 1)(4, 4)(7, 7)
labelsABABCA

Hier ist ein neuer Punkt (3, 3)

Der Abstand zwischen diesem Punkt und allen anderen Punkten beträgt:

points(1, 5)(5, 0)(3, 2)(8, 1)(4, 4)(7, 7)
distance from (3, 3)813129232
labelsABABCA

Wenn nun k = 3 ist, müssen wir die 3 am nächsten gelegenen Punkte zu unserem neuen Punkt finden. Dies sind die nächsten: (3, 2), (1, 5) und (4, 4). Die zu diesen Punkten gehörenden Labels sind: A, A, C. Wir haben zweimal A und einmal C. A ist die Mehrheit, daher wird der neue Punkt als A klassifiziert.

Die Methode predict sollte eine Liste von Labels zurückgeben, die für die neuen Punkte klassifiziert wurden.

Um das Mehrheitslabel einer Liste von Labels zu finden, verwenden Sie: max(set(labels), key = labels.count)

Probier es selbst

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

Alle Lektionen in Einführung in maschinelles Lernen

Übe selbstständig: Online-Python-Compiler