Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Skalarprodukt und Kosinus-Ähnlichkeit

Nach dieser Lektion: Ich kann mit dem Skalarprodukt und der Kosinus-Ähnlichkeit sagen, wie sehr zwei Vektoren übereinstimmen.

Lektion, 65 Min.3 BefehleJupyterLab-Lab für Data Science: pandas, Matplotlib und scikit-learn im Browser

Wie ähnlich sind zwei Hörgewohnheiten?

Das Skalarprodukt multipliziert zwei Vektoren Komponente für Komponente und addiert die Ergebnisse. Daraus entsteht die Kosinus-Ähnlichkeit, ein Maß dafür, wie sehr zwei Vektoren in dieselbe Richtung zeigen.

Ein Musikdienst vergleicht damit, wie viele Stunden drei Studierende pro Woche Pop, Rock, Klassik und Jazz hören. So findet er Menschen mit ähnlichem Geschmack.

Am Ende dieser Lektion

Notiz

Ich kann mit dem Skalarprodukt und der Kosinus-Ähnlichkeit sagen, wie sehr zwei Vektoren übereinstimmen.

Schlüsselwörter

BegriffWas er bedeutet
Skalarproduktdie Summe der Produkte gleicher Positionen zweier Vektoren
Winkelwie weit zwei Vektoren auseinanderzeigen
Kosinus-Ähnlichkeitdas Skalarprodukt geteilt durch beide Längen
orthogonalsenkrecht zueinander, Skalarprodukt 0
Längedie Wurzel aus dem Skalarprodukt mit sich selbst

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Das Skalarprodukt multipliziert und addiert

Für das Skalarprodukt zweier Vektoren multiplizieren Sie gleiche Positionen und addieren alle Produkte. Das Ergebnis ist eine einzelne Zahl, kein Vektor.

Hören zwei Menschen beide viel Pop, wird dieser Summand groß. Hört einer nichts, was der andere hört, ist der Summand 0.

Beispiel: Anna und Ben

GenreAnna in StundenBen in StundenProdukt
Pop5420
Rock300
Klassik000
Jazz111
Skalarprodukt21

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Das Skalarprodukt in Python

Code: python
anna = [5, 3, 0, 1]   # Stunden: Pop, Rock, Klassik, Jazz
ben = [4, 0, 0, 1]
summe = 0
for n in range(len(anna)):
    summe = summe + anna[n] * ben[n]
print("Skalarprodukt:", summe)
# Ändern Sie die 0 bei Ben (Rock) auf 3.
# Wie ändert sich das Produkt? Rechnen Sie vorher im Kopf.

Dasselbe Produkt mit NumPy

Befehl
docker exec jupyter python3 -c "import numpy as np; print(np.dot([5, 3, 0, 1], [4, 0, 0, 1]))"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Das Vorzeichen des Produkts zeigt den Winkel

Das Skalarprodukt ist gleich Länge mal Länge mal dem Kosinus des Winkels zwischen den Vektoren. Der Kosinus ist 1 bei gleicher Richtung, 0 bei einem rechten Winkel und minus 1 bei Gegenrichtung.

Ein Produkt von 0 heißt also: orthogonal, die Vektoren stehen senkrecht.

Beispiel: drei Lagen zweier Pfeile

VektorenSkalarproduktWinkelLage
[1, 0] und [2, 0]20 Gradgleiche Richtung
[1, 0] und [0, 1]090 Gradsenkrecht
[1, 2] und [-1, -2]-5180 GradGegenrichtung

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Zwei senkrechte Vektoren

Befehl
docker exec jupyter python3 -c "import numpy as np; print(np.dot([1, 0], [0, 1]), np.dot([1, 2], [-1, -2]))"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Ein häufiger Fehler

Warnung

Viele denken, ein großes Skalarprodukt heiße große Ähnlichkeit. Das stimmt nicht. Lange Vektoren geben große Produkte, auch bei ganz anderer Richtung. Teilen Sie erst durch beide Längen, dann zählt nur die Richtung.

Die Kosinus-Ähnlichkeit vergleicht nur die Richtung

Die Kosinus-Ähnlichkeit ist das Skalarprodukt geteilt durch das Produkt der beiden Längen. Sie liegt zwischen minus 1 und 1. Bei Zählwerten ohne Minus liegt sie zwischen 0 und 1.

Hört jemand das Zehnfache an Stunden bei gleichem Mix, bleibt die Ähnlichkeit gleich. Die Länge ist herausgekürzt.

Beispiel: wem ähnelt Anna mehr?

PaarSkalarproduktLängenÄhnlichkeit
Anna und Ben215,916 und 4,1230,861
Anna und Cem135,916 und 5,1960,423

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Die Ähnlichkeit zweier Menschen berechnen

Code: python
anna = [5, 3, 0, 1]
cem = [1, 1, 0, 5]
punkt = 0
quadrat_a = 0
quadrat_c = 0
for n in range(4):
    punkt = punkt + anna[n] * cem[n]
    quadrat_a = quadrat_a + anna[n] ** 2
    quadrat_c = quadrat_c + cem[n] ** 2
aehnlich = punkt / (quadrat_a ** 0.5 * quadrat_c ** 0.5)
print("Ähnlichkeit:", round(aehnlich, 3))
# Setzen Sie cem auf [10, 10, 0, 50]. Die Ähnlichkeit bleibt gleich.

Die Ähnlichkeit von Anna und Ben

Befehl
docker exec jupyter python3 -c "import numpy as np; a = np.array([5, 3, 0, 1]); b = np.array([4, 0, 0, 1]); print(round(a @ b / (np.linalg.norm(a) * np.linalg.norm(b)), 3))"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Über dieses Lab und seinen Quellcode: JupyterLab-Lab für Data Science: pandas, Matplotlib und scikit-learn im Browser

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.