metodo predict
Lezione 8 di 19 del corso Introduzione all’apprendimento automatico di Coddy.
Sfida
MedioCompleta 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) |
| etichette | A | B | A | B | C | A |
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) | 8 | 13 | 1 | 29 | 2 | 32 |
| etichette | A | B | A | B | C | A |
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):
passTutte le lezioni di Introduzione all’apprendimento automatico
2Panoramica sull’apprendimento automatico
Apprendimento supervisionatoApprendimento non supervisionatoEsercitati da solo: Compilatore Python online