LoslegenKostenlos loslegen

Alle deine Filme auf einmal vergleichen

Die Jaccard-Ähnlichkeit zwischen zwei einzelnen Filmen in deinem Datensatz zu berechnen, ist für Analysen im kleinen Rahmen hilfreich, kann aber bei größeren Datensätzen für Empfehlungen langsam werden.

In dieser Übung findest du die Ähnlichkeiten zwischen allen Filmen und speicherst sie in einem DataFrame, damit du sie schnell und einfach nachschlagen kannst.

Wenn du die Ähnlichkeiten zwischen den Zeilen in einem DataFrame berechnen willst, könntest du alle Paare durchgehen und sie einzeln berechnen. Effizienter ist jedoch die Funktion pdist() (pairwise distance) aus scipy.

Das Ergebnis lässt sich mit squareform() aus derselben Bibliothek in die gewünschte rechteckige Form bringen. Da du Ähnlichkeitswerte statt Distanzen möchtest, solltest du die Werte von 1 abziehen.

movie_cross_table wurde wieder für dich geladen.

Diese Übung ist Teil des Kurses

Recommendation Engines mit Python entwickeln

Kurs anzeigen

Anleitung zur Übung

  • Ermittle die Jaccard-Distanzmaße zwischen allen Filmen und weise die Ergebnisse jaccard_similarity_array zu.
  • Erstelle einen DataFrame aus dem jaccard_similarity_array und verwende movie_genre_df.index für Zeilen und Spalten.
  • Gib die obersten 5 Zeilen des DataFrames aus und untersuche die Ähnlichkeitswerte.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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())
Code bearbeiten und ausführen