Olá. Eu consegui achar o problema e acredito que seria bom corrigir no material.
No vídeo a instrutora coloca o código da seguinte maneira:
def clustering_algorithm (clusters, dataset):
kmeans = KMeans(n_clusters = clusters, n_init = 10, max_iter = 300)
y_pred = kmeans.fit_predict(dataset)
s = metrics.silhouette_score(dataset, labels, metric = 'euclidean')
dbs = metrics.davies_bouldin_score(dataset, labels)
calinski = metrics.calinski_harabasz_score(dataset, labels)
return s, dbs, calinski
Sem definir a variável labels novamente. Então a função fica usando o labels definido em outra parte da aula e portanto o labels fica fixo com 8950 componentes. Já ao olhar a descrição, o código da função está correto. Da seguinte forma:
def clustering_algorithm(n_clusters, dataset):
kmeans = KMeans(n_clusters=n_clusters, n_init=10, max_iter=300)
labels = kmeans.fit_predict(dataset)
s = metrics.silhouette_score(dataset, labels, metric='euclidean')
dbs = metrics.davies_bouldin_score(dataset, labels)
calinski = metrics.calinski_harabasz_score(dataset, labels)
return s, dbs, calinski
Mais uma correção feita na transcrição e não citada no vídeo> Por favor se atentem para atualizar os vídeos também.
Obrigada!