Website-Suche

Norm eines Vektors in Python - Schritte zur Berechnung


Die Norm eines Vektors bezieht sich auf die Länge oder die Größe eines Vektors. Es gibt verschiedene Möglichkeiten, die Länge zu berechnen. Die Norm eines Vektors ist ein nicht-negativer Wert. In diesem Tutorial werden wir lernen, wie man die verschiedenen Arten von Normen eines Vektors berechnet.

Die Norm eines Vektors x wird als: ‖x‖ bezeichnet.

Die Norm eines Vektors ist ein Maß für seine Entfernung vom Ursprung im Vektorraum.

Um die Norm zu berechnen, können Sie entweder Numpy oder Scipy verwenden. Beide bieten eine ähnliche Funktion zur Berechnung der Norm an.

In diesem Tutorial werden wir uns mit zwei Arten von Normen befassen, die im Bereich des maschinellen Lernens am häufigsten vorkommen.

Das sind :

  • L1-Norm
  • L2-Norm

Wie berechnet man die L1-Norm eines Vektors?

Die L1-Norm eines Vektors ist auch als Manhattan-Distanz oder Taxicab-Norm bekannt. Die Notation für die L1-Norm eines Vektors x ist ‖x‖1.

Um die Norm zu berechnen, müssen Sie die Summe der absoluter Vektorenwerte nehmen.

Lass uns ein Beispiel nehmen, um das zu verstehen:

a = [1,2,3,4,5]

Für das obige Array wird die L1-Norm wie folgt sein:

1+2+3+4+5 = 15 

Lass uns ein weiteres Beispiel nehmen:

a = [-1,-2,3,4,5]

Der L1-Norm dieses Arrays ist:

|-1|+|-2|+3+4+5 = 15 

Die L1-Norm für beide Vektoren ist desselbe, da wir beim Berechnen die absoluten Werte betrachten.

Python-Implementierung der L1-Norm

Lass uns sehen, wie wir die L1-Norm eines Vektors in Python berechnen können.

Nutzung von Numpy

Der Python-Code zur Berechnung der L1-Norm mit Numpy lautet wie folgt:

from numpy import array
from numpy.linalg import norm
arr = array([1, 2, 3, 4, 5])
print(arr)
norm_l1 = norm(arr, 1)
print(norm_l1)

Ausgabe :

[1 2 3 4 5]
15.0

Lass uns versuchen, es für das Array mit negativen Einträgen in unserem obigen Beispiel zu berechnen.

from numpy import array
from numpy.linalg import norm
arr = array([-1, -2, 3, 4, 5])
print(arr)
norm_l1 = norm(arr, 1)
print(norm_l1)

Ausgabe :

[-1 -2  3  4  5]
15.0

Verwendung von Scipy

Die Berechnung von L1 mit Scipy ist nicht sehr unterschiedlich von der oben genannten Implementierung.

Der Code dafür ist:

from numpy import array
from scipy.linalg import norm
arr = array([-1, -2, 3, 4, 5])
print(arr)
norm_l1 = norm(arr, 1)
print(norm_l1)

Ausgabe :

[-1 -2  3  4  5]
15.0

Der Code ist genau wie der Numpy-Code.

Wie berechnet man die L2-Norm eines Vektors?

Die Notation für die L2-Norm eines Vektors x ist ‖x‖2.

Um die L2-Norm eines Vektors zu berechnen, nehmen Sie die Quadratwurzel aus der Summe der quadrierten Vektorkomponenten.

Ein anderer Name für die L2-Norm eines Vektors ist euklidische Distanz. Dies wird häufig zur Berechnung des Fehlers in Modellen des maschinellen Lernens verwendet.

Der quadratische Mittelwertfehler ist der euklidische Abstand zwischen dem tatsächlichen Output des Modells und dem erwarteten Output.

Das Ziel eines maschinellen Lernmodells besteht darin, diesen Fehler zu reduzieren.

Lass uns ein Beispiel betrachten, um es zu verstehen.

a = [1,2,3,4,5]

Die L2-Norm dafür ist:

sqrt(1^2 + 2^2 + 3^2 + 4^2 + 5^2) = 7.416

Die L2-Norm ist immer eine positive Größe, da wir die Werte vor dem Hinzufügen quadrieren.

Python-Implementierung

Die Python-Implementierung ist wie folgt:

from numpy import array
from numpy.linalg import norm
arr = array([1, 2, 3, 4, 5])
print(arr)
norm_l2 = norm(arr)
print(norm_l2)

Ausgabe :

[1 2 3 4 5]
7.416198487095663

Hier sehen wir, dass die norm-Methode standardmäßig die L2-Norm zurückgibt.

Schlussfolgerung

Dieses Tutorial handelte von der Berechnung von L1- und L2-Normen in Python. Wir haben Numpy und Scipy verwendet, um die beiden Normen zu berechnen. Ich hoffe, Sie hatten Spaß beim Lernen mit uns!