Filtrowanie kolaboratywne

Budowanie systemów rekomendacji w Pythonie

Rob O'Callaghan

Director of Data

Filtrowanie kolaboratywne

Budowanie systemów rekomendacji w Pythonie

Filtrowanie kolaboratywne

Budowanie systemów rekomendacji w Pythonie

Filtrowanie kolaboratywne

Budowanie systemów rekomendacji w Pythonie

Znajdowanie podobnych użytkowników

Budowanie systemów rekomendacji w Pythonie

Znajdowanie podobnych użytkowników

Budowanie systemów rekomendacji w Pythonie

Praca z prawdziwymi danymi

DataFrame user_ratings:

Użytkownik Książka Ocena
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
... ... ...
Budowanie systemów rekomendacji w Pythonie

Przestawianie danych

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
     ...               ...                       ...                     ...
Budowanie systemów rekomendacji w Pythonie

Rzadkość danych

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: []
Budowanie systemów rekomendacji w Pythonie

Uzupełnianie brakujących wartości

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
Budowanie systemów rekomendacji w Pythonie

Uzupełnianie brakujących wartości

Budowanie systemów rekomendacji w Pythonie

Uzupełnianie brakujących wartości

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

Budowanie systemów rekomendacji w Pythonie

Uzupełnianie brakujących wartości

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

Budowanie systemów rekomendacji w Pythonie

Czas na ćwiczenia!

Budowanie systemów rekomendacji w Pythonie

Preparing Video For Download...