1
resposta

DBSCAN considera tudo como ruído (-1)

Estou utilizando o mesmo dataset fornecido no curso "Clustering Básico: k-means, DBSCAN e mean shift" e utilizei o mesmo código do instrutor e diferentemente da aula, ao usar o agrupador.labels_ é retornado um array apenas com -1, ou seja, apenas ruídos. Algúem pode me ajudar?

1 resposta

Oii Mateus, tudo certo?

Enquanto eu estava fazendo o curso também tive esse problema, não sei te explicar exatamente o porquê o mesmo dataset ter uma variação tão grande de distâncias, mas quando você altera o valor do eps que é a distância mínima que temos entre os pontos para um valor maior, ele consegue fazer as clusters e o número de ruídos cai. Vale lembrar que quanto usamos um valor muito pequeno para esse parâmetro ele considera tudo como ruído, e se usa um valor muito grande ele pode considerar tudo como um único cluster.

Aqui está o códio que usei e o resultado que obtive:

from sklearn.cluster import DBSCAN
agrupador = DBSCAN(eps=100, min_samples = 15, metric = 'manhattan')
agrupador.fit(df)
agrupador.labels_
resultado obtido com o valor de eps em 100

Qualquer coisa, é só me chamar, ok?

Bons estudos ^^