НачатьНачать бесплатно

Метрика сходства пользователей

Вы уже написали функцию для вычисления множества общих узлов между двумя вершинами. Теперь напишем функцию, которая рассчитывает метрику сходства между двумя пользователями: количество общих проектов делится на общее число узлов в другом разделе. Эта метрика позволяет находить пользователей, похожих друг на друга.

Это упражнение является частью курса

Средний уровень сетевого анализа на 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)
Редактировать и запускать код