Menu
CoddyTech

método fit

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

 

Fuente: Wikipedia

challenge icon

Desafío

Difícil

Implementa el método fit y el método find_cluster_centroid. El método find_cluster_centroid encuentra el centroide de una lista dada de puntos (clúster). Las instrucciones sobre cómo encontrar el centroide se encuentran en la lección anterior. Para implementar el método fit, sigue estas instrucciones:

  1. Inicializar Centroides: Primero, elige k puntos como los centroides iniciales del conjunto de datos. Para pasar los casos de prueba, elige los puntos 3º, 5º, 7º, 9º, … como centroides iniciales (dependiendo de los puntos k)
  2. Asignar Clústeres: Para cada punto en el conjunto de datos, encuentra el centroide más cercano (usando medidas de distancia como la distancia euclidiana) y asigna el punto a ese clúster.
  3. Actualizar Centroides: Una vez que todos los puntos han sido asignados a los clústeres, recalcula los centroides tomando la media de todos los puntos en cada clúster.
  4. Repetir Pasos 2 y 3: Los pasos anteriores se repiten hasta que los centroides ya no cambien significativamente. Si la distancia entre el nuevo centroide y el centroide anterior es menor que 0.01, detente

Cómo pasar los casos de prueba:

  • Guarda los centroides en la variable self.centroids.
  • Una vez que encuentres nuevos centroides y la distancia total entre los nuevos centroides y los anteriores sea menor que 0.01, mantén los centroides anteriores.
  • El orden de los centroides es importante. Itera siempre sobre los centroides de principio a fin.
  • Los casos de prueba imprimirán self.centroids y validarán si son correctos.

Pruébalo tú mismo

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):
    # Escribe tu código aquí

    def fit(self, X_train):
        # Escribe tu código aquí
        self.centroids = ...
    
    def predict(self, X_test):
        pass

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

Practica por tu cuenta: Compilador de Python online