Zastosowanie transformacji rekomendacji
W ostatnich kilku ćwiczeniach obliczyłeś średnią ocenę dla każdego kursu i oczyściłeś dane o kursach. Teraz wykorzystasz te dane, aby wygenerować przydatne rekomendacje dla studentów DataCamp.
Dla przypomnienia, oto reguły tworzenia rekomendacji:
- Uwzględniaj technologię, którą student oceniał najczęściej.
- Wyklucz kursy, które student już ocenił.
- Znajdź trzy najwyżej oceniane kursy spośród dostępnych opcji.
Aby wygenerować ostateczne rekomendacje, skorzystasz ze średnich ocen kursów oraz listy dostępnych rekomendacji dla każdego użytkownika, przechowywanych odpowiednio w avg_course_ratings i courses_to_recommend. Zrobisz to, uzupełniając funkcję transform_recommendations(), która łączy obie ramki danych i znajduje 3 najwyżej oceniane kursy do polecenia każdemu użytkownikowi.
To ćwiczenie jest częścią kursu
Wprowadzenie do inżynierii danych
Instrukcje do ćwiczenia
- Uzupełnij funkcję
transform_recommendations(): - Połącz
course_to_recommendzavg_course_ratings. - Posortuj wyniki według kolumny
rating, grupując po ID użytkownika. - Wyświetl 3 pierwsze wiersze i posortuj według ID użytkownika.
- Wywołaj zdefiniowaną właśnie funkcję
transform_recommendations()z odpowiednimi argumentami, aby zapisać rekomendacje dla każdego użytkownika w zmiennejrecommendations.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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 = ____(____, ____)