Krok za krokem přes K-nearest neighbors
Právě ses přesvědčil/a, jak lze K-nearest neighbors využít k odhadnutí hodnocení, které by někdo dal danému filmu – a to díky moudrosti (podobně smýšlejícího) davu. V tomto cvičení si celý postup projdeš sám/sama, aby sis ho dobře osvojil/a.
Aby ses mohl/a rovnou pustit do práce, matice podobností byla za tebe připravena předem – uživatelská matice podobností je zabalená do DataFrame načteného jako user_similarities.
Tento DataFrame má uživatele jako řádky i sloupce; na jejich průsečíku najdeš odpovídající skóre podobnosti.
V tomto cvičení budeš pracovat se skóre podobností uživatele user_001, najdeš jeho nejbližší sousedy a na základě jejich hodnocení odhadneš, jaké hodnocení by user_001 dal danému filmu, kdyby ho viděl.
Toto cvičení je součástí kurzu
Tvorba doporučovacích systémů v Pythonu
Pokyny k cvičení
- Najdi ID 10 nejbližších sousedů uživatele
User_Atak, že zordered_similaritiesvybeреš prvních 10 uživatelů a uložíš je jakonearest_neighbors. - Z
user_ratings_tableextrahuj hodnocení uživatelů vnearest_neighborsa ulož je jakoneighbor_ratings. - Vypočítej průměrné hodnocení, které tito uživatelé dali filmu
Apollo 13 (1995), a odhadni tak, jaké hodnocení by mu dalUser_A, kdyby ho viděl.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# Isolate the similarity scores for user_1 and sort
user_similarity_series = user_similarities.loc['user_001']
ordered_similarities = user_similarity_series.sort_values(ascending=False)
# Find the top 10 most similar users
nearest_neighbors = ordered_similarities[1:11].____
# Extract the ratings of the neighbors
neighbor_ratings = user_ratings_table.____(nearest_neighbors)
# Calculate the mean rating given by the users nearest neighbors
print(neighbor_ratings['Apollo 13 (1995)'].____())