Menu
Coddy logo textTech

metodo predict

Lezione 8 di 19 del corso Introduzione all’apprendimento automatico di Coddy.

challenge icon

Sfida

Medio

Completa il metodo predict.

Il metodo dovrebbe accettare una lista di nuovi punti X.

Per ogni nuovo punto, calcola la distanza tra questo punto e tutti gli altri punti memorizzati in self.points. Estrai le etichette dei self.k punti più vicini.

Trova l'etichetta maggioritaria tra i punti più vicini: questa sarà la classe prevista.

Per esempio, ecco i nostri punti e le etichette:

punti(1, 5)(5, 0)(3, 2)(8, 1)(4, 4)(7, 7)
etichetteABABCA

Ecco un nuovo punto (3, 3)

La distanza tra questo punto e tutti gli altri punti è:

punti(1, 5)(5, 0)(3, 2)(8, 1)(4, 4)(7, 7)
distanza da (3, 3)813129232
etichetteABABCA

Ora, se k = 3, dobbiamo trovare i 3 punti più vicini al nostro nuovo punto. Questi sono i più vicini: (3, 2), (1, 5) e (4, 4). Le etichette corrispondenti a questi punti sono: A, A, C. Abbiamo 2 A e 1 C. A è l'etichetta maggioritaria, quindi il nuovo punto viene classificato come A.

Il metodo predict dovrebbe restituire una lista di etichette assegnate ai nuovi punti.

Per trovare l'etichetta maggioritaria di una lista di etichette, usa: max(set(labels), key = labels.count)

Provalo tu

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

Tutte le lezioni di Introduzione all’apprendimento automatico

Esercitati da solo: Compilatore Python online