Kollaborativ filtrering

Bygga rekommendationsmotorer i Python

Rob O'Callaghan

Director of Data

Kollaborativ filtrering

Bygga rekommendationsmotorer i Python

Kollaborativ filtrering

Bygga rekommendationsmotorer i Python

Kollaborativ filtrering

Bygga rekommendationsmotorer i Python

Hitta liknande användare

Bygga rekommendationsmotorer i Python

Hitta liknande användare

Bygga rekommendationsmotorer i Python

Arbeta med verkliga data

user_ratings DataFrame:

Användare Bok Betyg
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
... ... ...
Bygga rekommendationsmotorer i Python

Pivotera datan

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
     ...               ...                       ...                     ...
Bygga rekommendationsmotorer i Python

Datagleshet

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: []
Bygga rekommendationsmotorer i Python

Fylla i saknade värden

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
Bygga rekommendationsmotorer i Python

Fylla i saknade värden

Bygga rekommendationsmotorer i Python

Fylla i saknade värden

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

Bygga rekommendationsmotorer i Python

Fylla i saknade värden

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

Bygga rekommendationsmotorer i Python

Nu kör vi en övning!

Bygga rekommendationsmotorer i Python

Preparing Video For Download...