Benzer kullanıcıları bul
Şimdiye kadar öğrendiklerinin üzerine koyarak, verilen bir kullanıcıya en benzer kullanıcıları bulan most_similar_users() adlı bir fonksiyon yazacaksın.
Bu fonksiyonun başlangıcı senin için yazıldı. Fonksiyona geçirilen verilen kullanıcı haricindeki tüm kullanıcıları içeren bir user_nodes düğüm listesi oluşturuldu. Görevin, bu fonksiyona verilen kullanıcıya en benzer kullanıcıları bulacak şekilde fonksiyonu tamamlamak. Bunu yaparken önceki egzersizde yazdığın user_similarity() fonksiyonundan yararlanacaksın.
Anahtarların puanlar, değerlerin ise düğümler listesi olduğu similarities adlı bir sözlük hazırlandı. Daha önce hiç defaultdict görmediysen endişe etme — Bölüm 3'te daha fazlasını öğreneceksin! Normal bir Python sözlüğü gibi çalışır.
Bu egzersiz
Python ile Orta Düzey Ağ (Network) Analizi
kursunun bir parçasıdırEgzersiz talimatları
user_nodesüzerinde yinele veuser_similarity()fonksiyonunu kullanarakuserile her biruser_node(n) arasındaki benzerliği hesapla. Sonucusimilarityolarak sakla.- Puanı ve düğümü
similaritiessözlüğüne ekle. Anahtar puan (similarity), değer düğüm (n). - En yüksek benzerlik puanını hesapla. Bunu yapmak için önce
.keys()yöntemiyle puanları içerensimilaritiesanahtarlarına eriş ve ardındanmax()fonksiyonunu kullan. Sonucumax_similarityolarak sakla. - Maksimum benzerliği paylaşan kullanıcıların listesini döndür. Bu kullanıcı listesi,
similaritiessözlüğündemax_similarityanahtarının değeridir. 'u4560'kullanıcısına en benzer kullanıcıların listesini yazdırmak içinmost_similar_users()fonksiyonunu kullan.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
from collections import defaultdict
def most_similar_users(G, user, user_nodes, proj_nodes):
# Data checks
assert G.nodes[user]['bipartite'] == 'users'
# Get other nodes from user partition
user_nodes = set(user_nodes)
user_nodes.remove(user)
# Create the dictionary: similarities
similarities = defaultdict(list)
for n in ____:
similarity = ____(____, ____, ____, ____)
____[____].____
# Compute maximum similarity score: max_similarity
max_similarity = ____
# Return list of users that share maximal similarity
return ____[____]
user_nodes = get_nodes_from_partition(G, 'users')
project_nodes = get_nodes_from_partition(G, 'projects')
print(____)