Menu
CoddyTech

método fit

Lição 10 de 19 do curso Introdução ao aprendizado de máquina da Coddy.

 

Fonte: Wikipedia

challenge icon

Desafio

Difícil

Implemente o método fit e o find_cluster_centroid. O find_cluster_centroid encontra o centroide de uma determinada lista de pontos (cluster). As instruções sobre como encontrar o centroide estão na lição anterior. Para implementar o fit, siga estas instruções:

  1. Inicializar Centroides: Primeiro, escolha k pontos como os centroides iniciais do conjunto de dados. Para passar nos casos de teste, escolha o 3º, 5º, 7º, 9º, … pontos como centroides iniciais (dependendo de k pontos)
  2. Atribuir Clusters: Para cada ponto no conjunto de dados, encontre o centroide mais próximo (usando medidas de distância como a distância Euclidiana) e atribua o ponto a esse cluster.
  3. Atualizar Centroides: Uma vez que todos os pontos foram atribuídos aos clusters, recalcule os centroides tirando a média de todos os pontos em cada cluster.
  4. Repetir os Passos 2 e 3: Os passos acima são repetidos até que os centroides não mudem mais significativamente. Se a distância entre o novo centroide e o centroide anterior for menor que 0.01, pare

Como passar nos casos de teste:

  • Salve os centroides na variável self.centroids.
  • Assim que você encontrar novos centroides e a distância total entre os novos centroides e os anteriores for menor que 0.01, mantenha os centroides anteriores.
  • A ordem dos centroides é importante. Sempre itere sobre os centroides do início ao fim.
  • Os casos de teste imprimirão self.centroids e validarão se estão corretos.

Experimente você mesmo

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):
    # Escreva seu código aqui

    def fit(self, X_train):
        # Escreva seu código aqui
        self.centroids = ...
    
    def predict(self, X_test):
        pass

Todas as lições de Introdução ao aprendizado de máquina

Pratique por conta própria: Compilador de Python online