Usare la trasformazione del recommender
Negli ultimi esercizi hai calcolato il rating medio per corso e ripulito alcuni dati dei corsi. Userai questi dati per creare raccomandazioni utili per gli studenti di DataCamp.
Per ricordarti, ecco le regole decisionali per generare le raccomandazioni:
- Usa la tecnologia a cui uno studente ha assegnato più valutazioni.
- Escludi i corsi che uno studente ha già valutato.
- Trova i tre corsi con il rating più alto tra quelli idonei.
Per produrre le raccomandazioni finali userai le valutazioni medie dei corsi e l’elenco delle raccomandazioni idonee per utente, salvati rispettivamente in avg_course_ratings e courses_to_recommend. Lo farai completando la funzione transform_recommendations() che unisce entrambi i DataFrame e trova i 3 corsi con il rating più alto da raccomandare per ogni utente.
Questo esercizio fa parte del corso
Introduzione al Data Engineering
Istruzioni dell'esercizio
- Completa la funzione
transform_recommendations(): - Unisci
course_to_recommendconavg_course_ratings. - Ordina i risultati per
rating, raggruppando per ID utente. - Mostra le prime 3 righe e ordina per ID utente.
- Chiama la funzione
transform_recommendations()che hai appena definito con gli argomenti appropriati per salvare le raccomandazioni per utente nella variabilerecommendations.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Complete the transformation function
def transform_recommendations(avg_course_ratings, courses_to_recommend):
# Merge both DataFrames
merged = courses_to_recommend.____(____)
# Sort values by rating and group by user_id
grouped = merged.sort_values("____", ascending=False).groupby("____")
# Produce the top 3 values and sort by user_id
recommendations = grouped.head(____).sort_values("____").reset_index()
final_recommendations = recommendations[["user_id", "course_id","rating"]]
# Return final recommendations
return final_recommendations
# Use the function with the predefined DataFrame objects
recommendations = ____(____, ____)