Метрика подібності користувачів
Після того як ви написали функцію для обчислення множини вузлів, спільних для двох вузлів, тепер ви реалізуєте функцію для розрахунку метрики подібності між двома користувачами: кількість проєктів, спільних для двох користувачів, поділена на загальну кількість вузлів в іншій частці (partition). Це дасть змогу знаходити користувачів, схожих один на одного.
Ця вправа є частиною курсу
Середній рівень Network Analysis у Python
Інструкції до вправи
- Доповніть функцію
user_similarity()для обчислення подібності міжuser1іuser2.- Використайте оператори
assert, щоб перевірити, щоuser1іuser2належать до частки'users'. - Скористайтеся своєю функцією
shared_partition_nodes()з попередньої вправи, щоб отримати множину вузлів, спільних для користувачівuser1іuser2. - Поверніть частку від кількості вузлів у частці
projects. Тобто поділіть кількістьshared_nodesна загальну кількість вузлів у частці'projects'.
- Використайте оператори
- Обчисліть показник подібності між користувачами
'u4560'і'u1880'. Для цього:- Спершу отримайте вузли в частці
'projects', використавши вашу функціюget_nodes_from_partition(). - Потім застосуйте функцію
user_similarity(), щоб розрахувати показник.
- Спершу отримайте вузли в частці
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
def user_similarity(G, user1, user2, proj_nodes):
# Check that the nodes belong to the 'users' partition
____ G.nodes[____]['bipartite'] == '____'
____ G.nodes[____]['bipartite'] == '____'
# Get the set of nodes shared between the two users
shared_nodes = ____
# Return the fraction of nodes in the projects partition
return len(____) / len(____)
# Compute the similarity score between users 'u4560' and 'u1880'
project_nodes = ____
similarity_score = ____
print(similarity_score)