MulaiMulai sekarang secara gratis

Membandingkan semua film Anda sekaligus

Mencari kesamaan Jaccard antara dua film individual dalam himpunan data Anda sangat berguna untuk analisis skala kecil, tetapi pada himpunan data yang lebih besar, pendekatan ini bisa lambat untuk membuat rekomendasi.

Dalam latihan ini, Anda akan mencari kesamaan antar semua film dan menyimpannya dalam sebuah DataFrame agar dapat diakses dengan cepat dan mudah.

Saat menghitung kesamaan antarbaris dalam sebuah DataFrame, Anda bisa menelusuri semua pasangan dan menghitungnya satu per satu, tetapi akan lebih efisien menggunakan fungsi pdist() (pairwise distance) dari scipy.

Hasilnya dapat dibentuk ulang ke bentuk persegi panjang yang diinginkan menggunakan squareform() dari pustaka yang sama. Karena Anda menginginkan nilai kesamaan, bukan jarak, Anda perlu mengurangkan nilai tersebut dari 1.

movie_cross_table telah dimuat kembali untuk Anda.

Latihan ini adalah bagian dari kursus

Membangun Recommendation Engine di Python

Lihat Kursus

Petunjuk latihan

  • Temukan ukuran jarak Jaccard antar semua film dan tetapkan hasilnya ke jaccard_similarity_array.
  • Buat sebuah DataFrame dari jaccard_similarity_array dengan movie_genre_df.index sebagai baris dan kolomnya.
  • Cetak 5 baris teratas dari DataFrame dan periksa skor kesamaannya.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# Import functions from scipy
from scipy.spatial.distance import pdist, squareform

# Calculate all pairwise distances
jaccard_distances = ____(movie_cross_table.values, metric='____')

# Convert the distances to a square matrix
jaccard_similarity_array = 1 - ____(____)

# Wrap the array in a pandas DataFrame
jaccard_similarity_df = pd.____(jaccard_similarity_array, ____=movie_cross_table.index, ____=movie_cross_table.index)

# Print the top 5 rows of the DataFrame
print(jaccard_similarity_df.head())
Edit dan Jalankan Kode