Data Science and Machine Learning - #49 Sistema de Recomendação III
02/12/2022Na 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!
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.