Queria fazer isso com, cliente, cidade, bairro e produtos. Ou usando coordenada geográficas. Será que é muito difícil, para meu conhecimento limitado e difícil. Queria recomendar produtos.
Nesse caso, não podemos usar informações de localidade ou coordenadas porque a própria característica do vizinho próximo é calcular distâncias. Agregando informações de localização iríamos enviesar o modelo a recomendar, em vez de bons produtos aos clientes, produtos aleatórios a pessoas que moram perto. Imagine o algoritmo recomendando uma escova de dente a você só porque seu vizinho comprou. E outro detalhe é que informações de localização são dados pessoais protegidos e portanto geram necessidade de um grande controle. Em vez desses dados de localização, busque por dados que descrevam características dos clientes e dos produtos, aí vira um poderoso motor de recomendação.
Acho importante salientar que no momento que vc usa 230 no idx_usuario e vai passar no iloc, será retornado o valor de user_id 231, e como entre os vizinhos retornados o id dos vizinhos constam o 230(que creio que seja do indice e não do user_id) fico na dúvida se não seria melhor utilizar o loc para pegar o id de usuário correto? No mais seu vídeo foi um ótimo esclarecedor, parabéns!
O código ficou show mas os resultados ficaram muito ruins hahaha. Se comparar os filmes comuns do usuário base e os usuários mais próximo ( pode ser o do exemplo do vídeo) você observa que eles possuem ratings bem distintos sobre um mesmo filme. Outro ponto é que mesmo com a "distancia do cosseno similaridade" baixa tem poucos filmes comuns vistos e um dos pontos importantes de analisar são filmes que os usuários viram( preferencialmente os bons) e deram um rating parecido. Não sei ao certo quais técnicas poderia ser aplicada para melhorar a resultado, e ser "algo mais usável" ou se é melhor partir para outro algoritmo
Boa Alysson! Acontece nas melhores famílias (trocadilho com o modelo de vizinhos próximos rs). A limitação deste modelo é que ele depende muito de cada ponto de dado. Uma prévia exploração permite percebermos que os ratings são muito diferentes e, dada a característica do modelo, ele sentirá esta diferença com resultados ruins para vizinhos “similares” (para ele). Eis o paradoxo do KNN - com poucos dados, ele não performa, com muitos dados, ele tem um custo alto. Talvez por isso a Netflix tenha alterado o modelo para um baseado em recomendação “legítimo”. E sim, para uma recomendação eficiente, o ideal seria usarmos um algoritmo de filtragem colaborativa, como o ALS. Bons estudos!
Caramba!!! Vídeo muito bom, didática perfeita, consegui entender e replicar em um projeto real aqui de forma muito fácil... Parabéns pelo vídeo!!!
Vídeo muito bom! Parabéns !!
Obrigado!
Vlw, amigo! você é amigo. excelente instrução
Obrigado! Tem parte 2 disponível
Pena q nao fez mais vídeos, tu é muito bom cara.
boa tarde prof, poderia explicar pra que serve o .sort q vc usou em 44:31
Opa Felipe! É para ordenar os mais relevantes em relação ao vizinho mais próximo.
Seria legal se fizesse um utilizando os generos, com o idf.
Queria fazer isso com, cliente, cidade, bairro e produtos. Ou usando coordenada geográficas. Será que é muito difícil, para meu conhecimento limitado e difícil. Queria recomendar produtos.
Nesse caso, não podemos usar informações de localidade ou coordenadas porque a própria característica do vizinho próximo é calcular distâncias. Agregando informações de localização iríamos enviesar o modelo a recomendar, em vez de bons produtos aos clientes, produtos aleatórios a pessoas que moram perto. Imagine o algoritmo recomendando uma escova de dente a você só porque seu vizinho comprou.
E outro detalhe é que informações de localização são dados pessoais protegidos e portanto geram necessidade de um grande controle.
Em vez desses dados de localização, busque por dados que descrevam características dos clientes e dos produtos, aí vira um poderoso motor de recomendação.
Acho importante salientar que no momento que vc usa 230 no idx_usuario e vai passar no iloc, será retornado o valor de user_id 231, e como entre os vizinhos retornados o id dos vizinhos constam o 230(que creio que seja do indice e não do user_id) fico na dúvida se não seria melhor utilizar o loc para pegar o id de usuário correto? No mais seu vídeo foi um ótimo esclarecedor, parabéns!
boa observação Kaiki, seria possível sim.
Só me tire uma dúvida os ids que estão sendo retornados são, os user_ids ou o índice da linha? Desde já agradeço
@@profmarlonferrari vc saberia como posso testar a melhor quantidade de vizinhos utilizando o GridSearchCV ou outro algoritmo?
opa, obrigado pelo video, pode disponibilizar os códigos por favor?
O código ficou show mas os resultados ficaram muito ruins hahaha.
Se comparar os filmes comuns do usuário base e os usuários mais próximo ( pode ser o do exemplo do vídeo) você observa que eles possuem ratings bem distintos sobre um mesmo filme. Outro ponto é que mesmo com a "distancia do cosseno similaridade" baixa tem poucos filmes comuns vistos e um dos pontos importantes de analisar são filmes que os usuários viram( preferencialmente os bons) e deram um rating parecido.
Não sei ao certo quais técnicas poderia ser aplicada para melhorar a resultado, e ser "algo mais usável" ou se é melhor partir para outro algoritmo
Boa Alysson! Acontece nas melhores famílias (trocadilho com o modelo de vizinhos próximos rs).
A limitação deste modelo é que ele depende muito de cada ponto de dado.
Uma prévia exploração permite percebermos que os ratings são muito diferentes e, dada a característica do modelo, ele sentirá esta diferença com resultados ruins para vizinhos “similares” (para ele).
Eis o paradoxo do KNN - com poucos dados, ele não performa, com muitos dados, ele tem um custo alto. Talvez por isso a Netflix tenha alterado o modelo para um baseado em recomendação “legítimo”.
E sim, para uma recomendação eficiente, o ideal seria usarmos um algoritmo de filtragem colaborativa, como o ALS.
Bons estudos!
@@profmarlonferrari Show, obrigado pela explicação!