Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Número ótimo de clusters diverge do apresentado.

De acordo com o tema discutido na aula, foi definido que o número ótimo de clusters seria que apresentaria a maior distância para a reta definida pelos pontos P0 e P1. Minha função:

import math
def numero_otimo_clusters(wcss):
    x0, y0 = 1, wcss[0]
    x1, y1 = 9, wcss[-1]

    distancias = []    
    for i in range(len(wcss)):
        x = i + 1
        y = wcss[i]
        numerador = abs((y1 - y0)*x - (x1 - x0)*y + x1*y0 - y1*x0)
        denominador = math.sqrt((y1 - y0)**2 + (x1 - x0)**2)
        distancias.append(numerador / denominador)
    return distancias.index(max(distancias)) + 1

Que retorna 3 como número ótimo de clusters e não 5 como a professora encontrou.

Pra tirar a dúvida se o problema estava na minha função, decidi retornar um dataframe com as "distâncias". E tbm obtive a mesma resposta. Trẽs.

Alguém poderia me ajudar a entender o que aconteceu aqui?

5 respostas

Ela descartou o primeiro cluster, eu acho que é por isso. Você começa o loop do cluster 1 e vai até o ultimo. ela começa do dois.

código dela:

import math
def numero_otimo_clusters(wcss):
    x1, y1 = 2,wcss[0] # diferente aqui
    x2, y2 = 20,wcss[len(wcss)-1]

    distancia = []
    for i in range(len(wcss)):
        x0 = i+2 # diferente aqui
        y0 = wcss[i]

Eu acho que deve ser por isso....talvez eu esteja falando uma bobagem

Pensando bem, eu acho que isso não faz a menor diferença para o seu problema....

solução!

Eu refiz com o silhouette e obtive 3 clusters para a recência. Precisamente, como no meu código acima.

Já para frequência e monetaridade, obtive 4 clusters. Tanto pelo meu código, quanto usando o silhouette.

Obrigado pela análise, mas isso faz total diferença para uma publicação.

Oi, Diego! Tudo bem?

Na realidade, mudar o número inicial de cluster vai modificar a angulação da sua reta e, logicamente, mudar a distância do cluster para a reta. Não vejo muito sentido em começar por 1 cluster, já que esse seria o resultado sem clusterização.

De qualquer forma, é sempre interessante utilizar mais de um método, já que não há receita de bolo.

Existe um artigo interessante sobre isso neste link. Para uma publicação, é importantíssimo que se utilize mais de um método e que eles sejam bem explicados.

Um abraço!

Oi, Sara! Tudo bem?!

Precisamente como havia feito. Obrigado por me esclarecer mais este dúvida.

abraços.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software