Article image
Carlos Lima
Carlos Lima26/04/2024 13:21
Compartilhe

[Code Tutorial] Sistema de recomendação para filmes com KNN

    Olá pessoas,

    hoje vamos construir um sistema de recomendação para filmes com base na semelhança que o filme tem em relação a um outro existente, digamos que você está trabalhando na Netflix e tem pedissem isso, certo ;)

    Sobre o filme você pode usar e deve, duas características, o gênero do filmes e a nota dele, com o algorítimo você encontra outros que são semelhantes e retorna ao usuário.

    Obs.:

    Não vou tratar sobre a matemática do problema ou explicar a lógica por trás do machine learning, isto é contigo e sua curiosidade, eu acredito que a forma mais eficiente de aprender é a "top-down" ou como eu gosto de falar "codar primeiro, perguntar depois".

    Etapas

    Carregar e olhar os dados

    image

    image

    Dados avaliados, vamos escolher um filme, digamos que seja o "Ex Machina", ele tem uma nota e também tem um gênero (ou mais de um), vamos criar um vetor com essas informações para procurar por outros filmes com nota semelhante e gênero.

    image

    ... agora temos a informação que precisamos (seria o filme que o user clicou) para achar semelhantes. Vamos construir nosso modelo :)

    image

    E finalmente vamos verificar os resultados que ele considera que são semelhante (filmes que seriam mostrados ao usuário).

    image

    A distância é quanto o algorítimo entende que o seu filme (filme que clicou) tem semelhança com o que ele recomendou (com base na nota e no gênero).

    ---

    Código na íntegra: https://deepnote.com/workspace/tree-ai-145c0fbd-6cbd-4160-ad24-fcb241d09a70/project/Welcome-2b1048b4-1b56-44f4-ac5a-4ae9cf1011ed/notebook/Notebook%201-e5e502f4557b4242b587e282e767c6e2

    ** Vou procurar um conjunto de dados semelhante e upar os arquivos no Github para quem quiser praticar, será público e as alterações terão que ser feitas por pull/request.

    Não tenha medo de "quebrar nada" será para praticar!,

    quando fizer/se fizer eu coloco aqui nos comentários :)

    Compartilhe
    Comentários (0)