Collaborative filtering

Aanbevelingssystemen bouwen in Python

Rob O'Callaghan

Director of Data

Collaborative filtering

Aanbevelingssystemen bouwen in Python

Collaborative filtering

Aanbevelingssystemen bouwen in Python

Collaborative filtering

Aanbevelingssystemen bouwen in Python

Vergelijkbare gebruikers vinden

Aanbevelingssystemen bouwen in Python

Vergelijkbare gebruikers vinden

Aanbevelingssystemen bouwen in Python

Werken met echte data

user_ratings-DataFrame:

Gebruiker Boek Beoordeling
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
... ... ...
Aanbevelingssystemen bouwen in Python

Data pivoteren

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
     ...               ...                       ...                     ...
Aanbevelingssystemen bouwen in Python

Dataschaarste

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())
Lege DataFrame
Kolommen: ["The Great Gatsby", "The Catcher in the Rye", "Fifty Shades of Grey"]
Index: []
Aanbevelingssystemen bouwen in Python

Ontbrekende waarden opvullen

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
Aanbevelingssystemen bouwen in Python

Ontbrekende waarden opvullen

Aanbevelingssystemen bouwen in Python

Ontbrekende waarden opvullen

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
     ...               ...                       ...                     ...

Aanbevelingssystemen bouwen in Python

Ontbrekende waarden opvullen

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
     ...               ...                       ...                     ...

Aanbevelingssystemen bouwen in Python

Laten we oefenen!

Aanbevelingssystemen bouwen in Python

Preparing Video For Download...