Filtraggio collaborativo

Creare motori di raccomandazione in Python

Rob O'Callaghan

Director of Data

Filtraggio collaborativo

Creare motori di raccomandazione in Python

Filtraggio collaborativo

Creare motori di raccomandazione in Python

Filtraggio collaborativo

Creare motori di raccomandazione in Python

Trovare utenti simili

Creare motori di raccomandazione in Python

Trovare utenti simili

Creare motori di raccomandazione in Python

Lavorare con dati reali

DataFrame user_ratings:

User Book Rating
User_233 Il grande Gatsby 3.0
User_651 Il giovane Holden 5.0
User_131 Il Signore degli Anelli 3.0
User_965 Il grande Gatsby 4.0
User_651 Cinquanta sfumature di grigio 4.0
... ... ...
Creare motori di raccomandazione in Python

Pivot dei dati

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
     ...               ...                       ...                     ...
Creare motori di raccomandazione in Python

Sparsità dei dati

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: []
Creare motori di raccomandazione in Python

Riempire i valori mancanti

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
Creare motori di raccomandazione in Python

Riempire i valori mancanti

Creare motori di raccomandazione in Python

Riempire i valori mancanti

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

Creare motori di raccomandazione in Python

Riempire i valori mancanti

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

Creare motori di raccomandazione in Python

Passiamo alla pratica !

Creare motori di raccomandazione in Python

Preparing Video For Download...