Kosinus-ähnlichkeit zwischen den einzelnen Zeilen in einen Dataframe in Python

Ich habe einen DataFrame mit mehreren Vektoren mit jeweils 3 Einträge. Jede Zeile ist ein Vektor in meiner Darstellung. Ich brauchte zur Berechnung der Kosinus-ähnlichkeit zwischen diesen Vektoren. Die Umwandlung dieser in eine matrix-Darstellung ist besser, oder ist es ein sauberer Ansatz in DataFrame selbst?

Hier ist der code, den ich ausprobiert habe.

import pandas as pd
from scipy import spatial
df = pd.DataFrame([X,Y,Z]).T
similarities = df.values.tolist()

for x in similarities:
    for y in similarities:
        result = 1 - spatial.distance.cosine(x, y)
  • Bitte teilen Sie, was Sie bisher ausprobiert haben, so dass wir richtig kann Ihnen helfen.
  • in den for-Schleifen, die Sie verwenden, werden Sie die Berechnung der ähnlichkeit einer Zeile mit sich selbst als gut. Sie brauchen nicht eine verschachtelte Schleife sowie. Iteration über die Anzahl der Zeilen-1, und berechnen Sie den Kosinus-ähnlichkeit zwischen df.iloc[i,:] und df.iloc[i+1,:]. Alternativ können Sie prüfen, in apply Methode der dataframes.
  • Vielen Dank für Ihre wertvollen input. Ich werde sicherlich versuchen, mit Hilfe der apply-Methode von DataFrame.
Schreibe einen Kommentar