método fit
Lição 10 de 19 do curso Introdução ao aprendizado de máquina da Coddy.
Desafio
DifícilImplemente 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:
- Inicializar Centroides: Primeiro, escolha
kpontos 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 dekpontos) - 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.
- 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.
- 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.centroidse 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):
passTodas as lições de Introdução ao aprendizado de máquina
Pratique por conta própria: Compilador de Python online
