Menu
CoddyTech

método predict

Lección 8 de 19 del curso Introducción al aprendizaje automático de Coddy.

challenge icon

Desafío

Intermedio

Completa el método predict.

El método debe recibir una lista de X puntos nuevos.

Para cada punto nuevo, calcula la distancia entre este punto y todos los demás puntos almacenados en self.points. Extrae las etiquetas de los self.k puntos más cercanos.

Encuentra la etiqueta mayoritaria de los puntos más cercanos, esta será la clase predicha.

Por ejemplo, aquí están nuestros puntos y etiquetas:

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

Aquí hay un nuevo punto (3, 3)

La distancia entre este punto y todos los demás puntos es:

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

Ahora, si k = 3, entonces necesitamos encontrar los 3 puntos más cercanos a nuestro nuevo punto. Estos son los más cercanos: (3, 2), (1, 5), y (4, 4). Las etiquetas correspondientes a estos puntos son: A, A, C. Tenemos 2 A y 1 C. A es la mayoría, por lo que el nuevo punto se clasifica como A.

El método predict debe devolver una lista de etiquetas que fueron clasificadas para los nuevos puntos.

Para encontrar la etiqueta mayoritaria de una lista de etiquetas, utiliza: max(set(labels), key = labels.count)

Pruébalo tú mismo

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

Todas las lecciones de Introducción al aprendizaje automático

Practica por tu cuenta: Compilador de Python online