Home
Button Mobile Webdesign em Foco
Newsletter Webdesign em Foco
Support Webdesign em Foco
Contribuition Webdesign em Foco
Doe para a Webdesign em Foco
Suporte da Webdesign em Foco
Fechar

Data Science and Machine Learning - #49 Sistema de Recomendação III

02/12/2022

Na aula de hoje finalizaremos o sistema de recomendações de produtos utilizando Machine Learning do Python.

Recomendando Produtos com Python

Para a recomendação dos produtos nós utilizaremos 3 critérios:
1 - Quantidade de classificações de um produto
2 - Média das notas das classificações daquele produto
3 - Categorias de produtos já avaliadas pelo cliente

app/views.py

Na views vamos fazer as eurísticas para achar os produtos com mais classificações, melhor média de nota e que já possuam avaliações do usuário:

def home(request):
    con = create_engine('mysql://root:@localhost/recomendacao')
    df = pd.read_sql_table('app_products',con)
    #print(df.head())
    idCat,cat = pd.factorize(df['categoria'])
    #print(idCat)
    df['categoriaCat']=idCat
    del df['categoria']
    del df['id']
    #print(df.head())

    newDf = pd.DataFrame({
        'media': df.groupby('product')['ratings'].mean().values,
        'contagem': df.groupby('product')['product'].count().values,
        'categoria':df.groupby('product')['categoriaCat'].max().values
    },index=df.groupby('product')['product'].count().index)
    #print(newDf)

    #Indicação apenas por quantidade de classificações
    #print(newDf[newDf['contagem']>2].sort_values('contagem',ascending=False))
    #data['recomendado'] = newDf[newDf['contagem'] > 2].sort_values('contagem', ascending=False).index

    # Indicação por média e quantidade de classificações
    #print(newDf[newDf['contagem'] > 2].sort_values(['contagem','media'], ascending=[False,False]))

    # Indicação por média e quantidade de classificações e por categoria
    categoriaUser = df[df['user_id']==3]['categoriaCat'].values[0]
    #print(newDf[(newDf['contagem'] > 2) & (newDf['categoria']==categoriaUser)].sort_values(['contagem', 'media'], ascending=[False, False]))
    data['recomendado'] = newDf[(newDf['contagem'] > 2) & (newDf['categoria']==categoriaUser)].sort_values(['contagem', 'media'], ascending=[False, False]).index
    return render(request,'home.html',data)

app/templates/home.html

No arquivo de template home, vamos exibir essa lista de produtos:

{% extends 'main.html' %}
{% block content %}
    

Compre também

{{recomendado.0}}
{{recomendado.1}}
{% endblock %}

Por hoje é só! Sucesso nos códigos e na vida!

Receba as aulas da Webdesign em Foco em Seu Email
Suporte Webdesign em Foco

Posts Relacionados

Data Science and Machine Learning - #48 Sistema de Recomendação II
Neste tutorial vamos continuar o desenvolvimento do sistema de recomendação de produtos com Machine Learning Python.
Saiba mais!
Python
Nesta seção aprofundaremos os conhecimentos sobre uma das linguagens em maior ascenção no mercado, o Python.
Saiba mais!