Oii Vladimir! Tudo bem?
Agradeço por trazer sua dúvida para o fórum, que a propósito, é ótima!
De fato o código pode gerar algumas dúvidas, já que conseguimos obter o mesmo retorno com ambos e suas diferenças são bem pequenas.
No código que está sendo usado o fit_predict
, este método realiza o ajuste do modelo aos dados ( fit
) e, também, a predição (predict
) que prevê os rótulos em uma linha de código. Ele retorna os rótulos dos clusters para os dados fornecidos.
Já no outro código usando o atributo labels
, este método ajusta o modelo aos dados (fit
) e depois armazena os rótulos clusters. E o seu retorno será o mesmo que foi utilizado o fit_predict
.
Em resumo, ambos os códigos ajustam o modelo aos dados e retorna os rótulos dos clusters. E sua diferença está em fit_predict
que é uma abordagem mais concisa de fazer as duas operações de uma vez só. E ao usar fit
e depois labels_
pode ser útil se você precisar realizar operações adicionais entre o ajuste do modelo e a obtenção dos rótulos.
Espero ter ajudado a esclarecer a dúvida. Conte sempre com a Alura para se desenvolver.
Bons estudos, Vladimir!