Metrik kemiripan pengguna
Setelah Anda menulis fungsi untuk menghitung himpunan node yang dimiliki bersama oleh dua node, sekarang Anda akan menulis fungsi untuk menghitung sebuah metrik kemiripan antara dua pengguna: jumlah proyek yang sama-sama dimiliki oleh dua pengguna dibagi dengan total jumlah node pada partisi lainnya. Ini kemudian dapat digunakan untuk menemukan pengguna yang mirip satu sama lain.
Latihan ini merupakan bagian dari kursus
Analisis Jaringan Menengah di Python
Instruksi latihan
- Lengkapi fungsi
user_similarity()untuk menghitung kemiripan antarauser1danuser2.- Gunakan pernyataan
assertuntuk memeriksa bahwauser1danuser2termasuk dalam partisi'users'. - Gunakan fungsi
shared_partition_nodes()yang Anda buat pada latihan sebelumnya untuk mendapatkan himpunan node yang sama-sama dimiliki oleh dua penggunauser1danuser2. - Kembalikan fraksi node pada partisi
projects. Artinya, bagi jumlahshared_nodesdengan total jumlah node pada partisi'projects'.
- Gunakan pernyataan
- Hitung skor kemiripan antara pengguna
'u4560'dan'u1880'. Untuk melakukan ini:- Pertama, peroleh node pada partisi
'projects'menggunakan fungsiget_nodes_from_partition()Anda. - Lalu gunakan fungsi
user_similarity()Anda untuk menghitung skornya.
- Pertama, peroleh node pada partisi
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
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)