BaşlayınÜcretsiz Başlayın

Tüm filmlerini aynı anda karşılaştır

Veri küpendeki herhangi iki bireysel film arasındaki Jaccard benzerliğini bulmak küçük ölçekli analizler için harika olsa da, daha büyük veri kümelerinde öneri üretmek için yavaş kalabilir.

Bu egzersizde, tüm filmler arasındaki benzerlikleri bulacak ve hızlı ve kolay erişim için bunları bir DataFrame'de saklayacaksın.

Bir DataFrame'deki satırlar arasındaki benzerlikleri hesaplarken tüm çiftleri tek tek dolaşıp hesaplayabilirsin, ancak scipy içindeki pdist() (pairwise distance) fonksiyonunu kullanmak daha verimlidir.

Aynı kütüphanedeki squareform() ile bu sonuçları istenen dikdörtgen şekle dönüştürebilirsin. Benzerlik değerleri istiyorsun, mesafe değil, bu yüzden değerleri 1'den çıkarmalısın.

movie_cross_table senin için yine yüklendi.

Bu egzersiz

Python ile Öneri Motorları Geliştirme

kursunun bir parçasıdır
Kursu Görüntüle

Egzersiz talimatları

  • Tüm filmler arasındaki Jaccard mesafe ölçümlerini bul ve sonuçları jaccard_similarity_array değişkenine ata.
  • jaccard_similarity_array'dan, satır ve sütunları movie_genre_df.index olan bir DataFrame oluştur.
  • DataFrame'in ilk 5 satırını yazdır ve benzerlik puanlarını incele.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

# 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())
Kodu Düzenle ve Çalıştır