Filtragem colaborativa

Construindo mecanismos de recomendação em Python

Rob O'Callaghan

Director of Data

Filtragem colaborativa

Construindo mecanismos de recomendação em Python

Filtragem colaborativa

Construindo mecanismos de recomendação em Python

Filtragem colaborativa

Construindo mecanismos de recomendação em Python

Encontrando usuários semelhantes

Construindo mecanismos de recomendação em Python

Encontrando usuários semelhantes

Construindo mecanismos de recomendação em Python

Trabalhando com dados reais

user_ratings DataFrame:

User Book Rating
User_233 The Great Gatsby 3.0
User_651 The Catcher in the Rye 5.0
User_131 The Lord of the Rings 3.0
User_965 The Great Gatsby 4.0
User_651 Fifty Shades of Grey 4.0
... ... ...
Construindo mecanismos de recomendação em Python

Fazendo pivot dos dados

user_ratings_pivot = user_ratings.pivot(index='User', 
                                        columns='Book',
                                        values='Rating')
print(user_ratings_pivot)
title     The Great Gatsby    The Catcher in the Rye    Fifty Shades of Grey
User                    
User_233               3.0                       NaN                     NaN
User_651               NaN                       5.0                     4.0
User_965               4.0                       3.0                     NaN
     ...               ...                       ...                     ...
Construindo mecanismos de recomendação em Python

Esparsidade dos dados

title     The Great Gatsby    The Catcher in the Rye    Fifty Shades of Grey
User                    
User_233               3.0                       NaN                     NaN
User_651               NaN                       5.0                     4.0
User_965               4.0                       3.0                     NaN
     ...               ...                       ...                     ...
print(user_ratings_pivot.dropna())
Empty DataFrame
Columns: ["The Great Gatsby", "The Catcher in the Rye", "Fifty Shades of Grey"]
Index: []
Construindo mecanismos de recomendação em Python

Preenchendo valores ausentes

title     The Great Gatsby    The Catcher in the Rye    Fifty Shades of Grey
User                    
User_233               3.0                       NaN                     NaN
User_651               NaN                       5.0                     4.0
User_965               4.0                       3.0                     NaN
     ...               ...                       ...                     ...
print(user_ratings_pivot["User_651"].fillna(0))
User_651               0.0                       5.0                     4.0
Construindo mecanismos de recomendação em Python

Preenchendo valores ausentes

Construindo mecanismos de recomendação em Python

Preenchendo valores ausentes

avg_ratings = user_ratings_pivot.mean(axis=1)

user_ratings_pivot = user_ratings_pivot.sub(avg_ratings, axis=0)
print(user_ratings_pivot)
title     The Great Gatsby    The Catcher in the Rye    Fifty Shades of Grey
User                    
User_233               0.0                       NaN                     NaN
User_651               NaN                       0.5                    -0.5
User_965               0.5                      -0.5                     NaN
     ...               ...                       ...                     ...

Construindo mecanismos de recomendação em Python

Preenchendo valores ausentes

user_ratings_pivot.fillna(0)
title     The Great Gatsby    The Catcher in the Rye    Fifty Shades of Grey
User                    
User_233               0.0                       0.0                     0.0
User_651               0.0                       0.5                    -0.5
User_965               0.5                      -0.5                     0.0
     ...               ...                       ...                     ...

Construindo mecanismos de recomendação em Python

Vamos praticar!

Construindo mecanismos de recomendação em Python

Preparing Video For Download...