Kolaborativní filtrování

Tvorba doporučovacích systémů v Pythonu

Rob O'Callaghan

Director of Data

Kolaborativní filtrování

Tvorba doporučovacích systémů v Pythonu

Kolaborativní filtrování

Tvorba doporučovacích systémů v Pythonu

Kolaborativní filtrování

Tvorba doporučovacích systémů v Pythonu

Hledání podobných uživatelů

Tvorba doporučovacích systémů v Pythonu

Hledání podobných uživatelů

Tvorba doporučovacích systémů v Pythonu

Práce s reálnými daty

DataFrame user_ratings:

Uživatel Kniha Hodnocení
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
... ... ...
Tvorba doporučovacích systémů v Pythonu

Pivotování dat

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
     ...               ...                       ...                     ...
Tvorba doporučovacích systémů v Pythonu

Řídkost dat

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: []
Tvorba doporučovacích systémů v Pythonu

Doplnění chybějících hodnot

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
Tvorba doporučovacích systémů v Pythonu

Doplnění chybějících hodnot

Tvorba doporučovacích systémů v Pythonu

Doplnění chybějících hodnot

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

Tvorba doporučovacích systémů v Pythonu

Doplnění chybějících hodnot

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

Tvorba doporučovacích systémů v Pythonu

Pojďme si procvičit!

Tvorba doporučovacích systémů v Pythonu

Preparing Video For Download...