NumPy Kleinste Quadrate

Numpy Kleinste Quadrate



Heute lernen wir die Methode der kleinsten Quadrate in linearen Gleichungen kennen und erfahren, wie die Methode der kleinsten Quadrate für die beste Anpassung an die Regressionslinie in den bereitgestellten Datensätzen implementiert wird. Aber vorher wollen wir uns die Grundkenntnisse von NumPy aneignen. NumPy ist eines der besten mathematischen Python-Pakete, das Dienste für mehrdimensionale Arrays und Matrizen sowie eine breite Palette komplexer numerischer Operationen bereitstellt, die an diesen Matrizen/Arrays ausgeführt werden können.

Eine der Methoden von Python lstsq() wird verwendet, um die Regressionsgerade der bekannten linearen Gleichung ax=b zu finden, die am besten zu dieser Gleichung passt. Das bedeutet, dass Sie die Linie bestimmen müssen, die die Beziehung zwischen den x- und y-Punkten richtig anzeigt, wenn Ihre Daten darauf hindeuten, dass es eine gibt. Die Linie zwischen beiden Punkten wird als Regressionslinie bezeichnet, wenn sie verwendet wird, um das kleinste Quadrat durch diese Gleichung zu finden, ax=b.

Syntax:

Beginnen wir mit dem Erlernen des Implementierungsstils der Funktion linalg.lstsq(). Zuerst schreiben wir den Bibliotheksnamen, den wir in Python verwenden, nämlich „numpy“. Dann verketten wir die Funktion linalg() und die Funktion lstsq(). Die Funktion linalg() bedeutet lineare Algebra. Es wird immer mit der Funktion lstsq() verwendet, da es sich um einen linearen algebraischen Ausdruck handelt. Danach übergeben wir die Argumente in den Funktionsklammern.









Parameter:

Lassen Sie uns die Parameter der Funktion linalg.lstsq() verstehen:



Punkt 1: Es ist die Koeffizientenmatrix.





Punkt2: Diese Matrix oder dieses Array enthält abhängige Variablen.

zweitens: Der Datentyp davon ist Float. Das zweite Verhältnis dient als Grenzwert für kleinere singuläre Werte von Punkt_1. Wenn ein singulärer Wert kleiner als das rcond-fache des größten singulären Elements von point_1 ist, wird er bei der Bestimmung des Rangs als Null betrachtet.



Rückgabewert:

Dafür erhalten wir das kleinste Quadrat der bekannten Variablen x in der Gleichung ax=b.

Beispiel 1:

Beginnen wir mit der Implementierung unseres ersten Beispiels einer Methode der kleinsten Quadrate der Python-Bibliothek NumPy. Zuerst brauchen wir einen Python-Compiler, damit wir darin codieren können. Öffnen Sie den Compiler. Sie müssen auch die NumPy-Bibliothek installieren, da wir eine der Funktionen von NumPy verwenden, nämlich die Funktion lstsq(). Dann müssen Sie das NumPy-Paket darin importieren. Schreiben Sie zuerst das Schlüsselwort „import“, das dem Compiler mitteilt, dass wir das Paket importieren werden. Dann müssen wir den Paketnamen schreiben, den wir in der Funktion „numpy“ verwenden. Und dann schreiben wir auch den alternativen Namen von NumPy „np“, weil viele Programmierer diesen Ansatz verwenden. Dies ist ein guter Programmieransatz und spart Zeit.

Nach dem Importieren des Pakets beginnen wir mit dem Schreiben der eigentlichen Codezeile, die wir ausführen möchten. Wir drucken zuerst die Nachrichten, damit der Benutzer leicht verstehen kann, was wir im Beispiel mit der print()-Anweisung tun. Wir erstellen das eindimensionale Array „A“ mit der Funktion array() und drucken es dann, indem wir die Anweisung print() aufrufen. Dann erstellen wir ein weiteres eindimensionales Array „B“ mit der Funktion array() und drucken es mit der Funktion print().

importieren taub wie z.B.

drucken ( 'Implementierung der Methode der kleinsten Quadrate in NumPy: ' )

EIN = z.B. Reihe ( [ 1 , zwei , 1 , 1 , 1 , zwei , zwei , 1 , 1 ] )

drucken ( ' \n Das Array A ist: ' , EIN )

B = z.B. Reihe ( [ 4 , 3 , 5 , 4 , zwei , 3 , 6 , 3 , zwei ] )

drucken ( ' \n Das Array B ist: ' , B )

X = z.B. Leinsamen . lstsq ( z.B. vstack ( [ EIN , z.B. Einsen ( nur ( EIN ) ) ] ) . T , B , zweite = Keiner ) [ 0 ]

drucken ( ' \n Das kleinste Quadrat ist: ' , X )

Nach der Erstellung der beiden Punkte A und B implementieren wir die Funktion lstsq(). Aber zuerst verwenden wir die Funktion vstack(), um die Elemente von „A“ der Reihe nach zu stapeln. Dann nehmen wir die Transponierte von Reihe „A“. Dann übergeben wir die Funktion vstack() als erstes Argument der Funktion lstsq(). Das zweite Argument ist das Array „B“ und das dritte Argument ist „rcond“, in dem wir den Wert von rcond auf „none“ setzen. Dann speichern wir die gesamte Funktion in einem anderen Array namens „x“, das zeigt, dass es sich um die bekannte variable lineare Gleichung ax=b handelt. Danach zeigen wir die Ergebnisse an, also verwenden wir dafür die print()-Anweisung und übergeben das „x“-Array darin.

Beispiel 2:

Beginnen wir nun mit der Implementierung eines weiteren Beispiels für die kleinsten Quadrate von NumPy. Wir importieren immer zuerst die Bibliothek, die wir im Programm NumPy verwenden. Zuerst schreiben wir das Schlüsselwort „import“, um das Paket in das Programm zu bekommen. Wir schreiben auch den Paketnamen, der „numpy“ ist, und dann seinen Alias ​​„np“. Dann rufen wir die Methode print() auf, damit wir die Retable-Nachricht der kleinsten Quadrate für ein besseres Verständnis des Benutzers anzeigen können.

Dann erstellen wir den Array-Namen „x_axis“ und speichern das Array darin mit der Funktion arange(). Dann drucken wir es mit der Methode print(). Dann erstellen wir einen weiteren Array-Namen „y_axis“ und speichern darin das Array, das wir in der folgenden Abbildung erstellt haben.

Nachdem wir beide Arrays erstellt haben, implementieren wir die ones()-Methode im x_axis-Array und speichern sie in einem anderen Array namens „array_a“. Und dann drucken wir auch dieses Array. Wir erstellen ein weiteres Array mit dem Namen „arg_reg_line“ und implementieren darauf eine linalg.lstsq()-Funktion. Dann übergeben wir die Parameter an diese Funktion, damit wir die kleinsten Quadrate zwischen zwei Arrays oder Punkten erhalten können. Der erste Parameter ist, dass wir die Transponierte von array_a nehmen. Der zweite Parameter ist der zweite Punkt, der die y_axis ist. Dann haben wir „rcond“, das den Wert „none“ enthält. Anschließend zeigen wir das Array mit der Methode print() an.

importieren taub wie z.B.

drucken ( 'Implementierung der Funktion linalg.lstsq(): ' )

x_Achse = z.B. anordnen ( 0 , 10 )

drucken ( ' \n Der Wert der x-Achse sind: ' , x_Achse )

y_Achse = [ 10.3 , 10.5 , elf , 11.5 , 13.2 , 13.9 , 14 , 15.5 , 16.6 , 17 ]

drucken ( ' \n Die Werte der y-Achse sind: ' , y_Achse )

array_a = z.B. Reihe ( [ x_Achse , z.B. Einsen ( 10 ) ] )

drucken ( ' \n Das Array ist: \n ' , array_a )

arg_reg_line = z.B. Leinsamen . lstsq ( array_a. T , y_Achse , zweite = Keiner ) [ 0 ]

drucken ( ' \n Die Parameter der Regressionslinie sind: ' , arg_reg_line )

reg_line = arg_reg_line [ 0 ] * x_axis + arg_reg_line [ 1 ]

importieren matplotlib. Pyplot wie plt

plt. Handlung ( x_Achse , reg_line , 'r-' )

plt. Handlung ( x_Achse , y_Achse , 'Ö' )

plt. Titel ( 'Lineare Regressionslinie' )

plt. Xlabel ( 'X-Achse' )

plt. Etikett ( 'Y-Achse' )

plt. Show ( )

Hier ist die Ausgabe des zuvor implementierten Beispiels:

Wir importieren ein weiteres Paket von NumPy, das Paket „matplotlib“, das zum Zeichnen des Diagramms verwendet wird. Dann zeichnen wir die x_axis-Werte und y_axis_values. Als nächstes legen wir den Titel und die Beschriftungen des Diagramms fest. Zuletzt zeigen wir den Graphen mit der Methode show() an.

Hier ist der gewünschte Graph des gegebenen Beispiels:

Fazit

In diesem Artikel haben wir gelernt, was das kleinste Quadrat ist und wie wir linalg.lstsq() der unbekannten Variablen x mit der linearen Gleichung ax=b erhalten. Wir haben mehrere Funktionen von NumPy verwendet, um die kleinsten Quadrate zu finden, und einige Beispiele mit detaillierten Erklärungen zum besseren Verständnis des Benutzers implementiert.