Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

random state não foi setado

Olá, acompanhando a aula fiquei com uma dúvida: no caso de cada fit_predict executado dentro da função, como o objeto KMeans não foi criado com o random_state com uma seed, ele retornaria valores de métricas diferentes para os mesmos números de clusteres.

Para avaliação e comparação de diferentes coeficientes com diferentes números de clusteres, não deveria setar uma seed? Ou este parâmetro já está sendo atendido pelo n_init?

1 resposta
solução!

Olá, Victor! Tudo bem com você?

Peço desculpa pela demora em responder o seu tópico.

Você levantou uma questão muito interessante sobre o uso do parâmetro random_state no KMeans.

De fato, o KMeans é um algoritmo que depende de inicialização aleatória, e diferentes inicializações podem levar a resultados diferentes. Então, se o random_state não for definido, cada vez que você executar o KMeans, os centroides iniciais serão diferentes, o que pode levar a resultados ligeiramente diferentes, especialmente se o número de iterações não for suficiente para convergir.

No entanto, o parâmetro n_init que você mencionou está sendo usado para lidar com essa questão. O n_init define o número de inicializações aleatórias a serem tentadas. O KMeans será executado n_init vezes com diferentes inicializações aleatórias e o melhor resultado será escolhido. Portanto, mesmo sem definir o random_state, o uso de n_init ajuda a tornar os resultados mais estáveis.

Por exemplo, na função clustering_algorithm() do curso, o n_init está definido como 10. Isso significa que o KMeans será executado 10 vezes com diferentes inicializações aleatórias e o melhor resultado (com a menor soma dos quadrados intra-cluster) será escolhido.

No entanto, se você quiser garantir que os resultados sejam os mesmos todas as vezes que você executar o código, você pode definir o random_state. Isso pode ser útil, por exemplo, para fins de reproducibilidade em um projeto de pesquisa.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.