Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Construindo um sistema inteligente de recomendação

Para resolver esse problema com o algoritmo A*, precisei fazer uma pequena adaptação conceitual: normalmente, o A* busca o menor custo (como menor distância).
Como queremos priorizar a maior probabilidade de conversão, podemos definir o "custo" de uma transição como o inverso da probabilidade ou uma subtração ($1 - \text{probabilidade}$), fazendo com que caminhos mais propensos à conversão tenham o menor "custo" numérico para o algoritmo.

Resolução no link abaixo:

https://colab.research.google.com/drive/1qlfbZr74nXYiiO_zYW-Se_w2wXpYi5yO?usp=sharing

1 resposta

Oii Deivide, tudo bem?

Obrigada por compartilhar sua solução aqui no fórum! A adaptação que você descreveu é exatamente o ponto central para aplicar o A* nesse contexto: como o algoritmo minimiza custo por padrão, transformar probabilidade de conversão em 1 - probabilidade é a sacada que faz tudo se encaixar. Quem passou pelo mesmo exercício vai se beneficiar muito de ver esse raciocínio explicado assim.

Vale notar que essa mesma lógica aparece em outros contextos de recomendação, como sistemas de ranqueamento e motores de busca personalizada. Quando você transformar probabilidade em custo, o algoritmo passa a "pensar" em termos de risco de não converter, o que é uma forma bem intuitiva de modelar o problema.

Conte com a Alura para evoluir seus estudos. Em caso de dúvidas, fico à disposição.

Bons estudos!

Sucesso

Imagem da comunidade