NumPy minimi quadrati

Numpy Minimi Quadrati



Oggi impareremo i minimi quadrati nelle equazioni lineari e come implementare il metodo dei minimi quadrati per il miglior adattamento per la retta di regressione nei set di dati forniti. Ma prima, acquisiamo le conoscenze di base di NumPy. NumPy è uno dei migliori pacchetti matematici di Python che fornisce servizi per matrici e matrici multidimensionali insieme a un'ampia gamma di complesse operazioni numeriche che possono essere eseguite su queste matrici/array.

Uno dei metodi di Python lstsq() viene utilizzato per trovare la retta di regressione dell'equazione lineare nota ax=b che meglio si adatta a questa equazione. Ciò significa che devi determinare la linea che mostra correttamente la relazione tra i punti xey se i tuoi dati indicano che ce n'è uno. La linea tra entrambi i punti è nota come retta di regressione quando viene utilizzata per trovare il minimo quadrato attraverso questa equazione, ax=b.

Sintassi:

Iniziamo ad imparare lo stile di implementazione della funzione linalg.lstsq(). Innanzitutto, scriviamo il nome della libreria che usiamo in Python che è 'numpy'. Quindi, concateniamo la funzione linalg() e concateniamo la funzione lstsq(). La funzione linalg() significa algebra lineare. Viene sempre utilizzato con la funzione lstsq() perché è un'espressione algebrica lineare. Dopo questo, passiamo gli argomenti tra parentesi della funzione.









Parametri:

Comprendiamo i parametri della funzione linalg.lstsq():



punto1: È la matrice dei coefficienti.





punto2: Questa matrice o matrice contiene variabili dipendenti.

secondo: Il tipo di dati è float. Il rapporto rcond funge da interruzione per valori singolari più piccoli di punto_1. Se un valore singolare è minore di rcond volte l'elemento singolare più grande del punto_1, viene considerato zero quando si determina il rango.



Valore di ritorno:

In cambio, otteniamo il minimo quadrato della variabile nota x nell'equazione ax=b.

Esempio 1:

Iniziamo a implementare il nostro primo esempio di metodo dei minimi quadrati della libreria Python, NumPy. Innanzitutto, abbiamo bisogno di un compilatore Python in modo da poterci codificare. Apri il compilatore. Devi anche installare la libreria NumPy perché stiamo usando una delle funzioni di NumPy che è la funzione lstsq(). Quindi, devi importare il pacchetto NumPy al suo interno. Per prima cosa, scrivi la parola chiave 'import' che dice al compilatore che importeremo il pacchetto. Quindi, dobbiamo scrivere il nome del pacchetto che usiamo nella funzione che è 'numpy'. E poi, scriviamo anche il nome alternativo di NumPy 'np' perché molti programmatori usano questo approccio. Questo è un buon approccio di programmazione e consente di risparmiare tempo.

Dopo aver importato il pacchetto, iniziamo a scrivere la riga di codice effettiva che vogliamo fare. Stampiamo prima i messaggi in modo che l'utente possa capire facilmente cosa stiamo facendo nell'esempio usando l'istruzione print(). Creiamo l'array unidimensionale 'A' usando la funzione array() e quindi lo stampiamo chiamando l'istruzione print(). Quindi, creiamo un altro array unidimensionale “B” usando la funzione array() e lo stampiamo usando la funzione print().

importare intontito come per esempio.

Stampa ( 'Implementazione del metodo dei minimi quadrati in NumPy:' )

UN = per esempio. Vettore ( [ 1 , Due , 1 , 1 , 1 , Due , Due , 1 , 1 ] )

Stampa ( ' \n La matrice A è: ' , UN )

B = per esempio. Vettore ( [ 4 , 3 , 5 , 4 , Due , 3 , 6 , 3 , Due ] )

Stampa ( ' \n L'array B è: ' , B )

X = per esempio. semi di lino . lstq ( per esempio. vstack ( [ UN , per esempio. quelli ( solo ( UN ) ) ] ) . T , B , secondo = Nessuno ) [ 0 ]

Stampa ( ' \n Il quadrato minimo è: ' , X )

Dopo la creazione di entrambi i punti A e B, implementiamo la funzione lstsq(). Ma prima, usiamo la funzione vstack() per impilare gli elementi di 'A', in sequenza. Quindi, prendiamo la trasposizione dell'array 'A'. Quindi, passiamo la funzione vstack() come primo argomento della funzione lstsq(). Il secondo argomento è l'array 'B' e il terzo argomento è 'rcond' in cui impostiamo il valore di rcond come 'none'. Quindi, memorizziamo l'intera funzione in un altro array chiamato 'x' che mostra che è l'equazione lineare variabile nota, ax=b. Successivamente, visualizziamo i risultati in modo da utilizzare l'istruzione print() per questo e passare l'array 'x' al suo interno.

Esempio 2:

Ora, iniziamo a implementare un altro esempio di minimi quadrati NumPy. Importiamo sempre prima la libreria che utilizziamo nel programma che è NumPy. Per prima cosa, scriviamo la parola chiave 'import' per ottenere il pacchetto nel programma. Scriviamo anche il nome del pacchetto che è 'numpy' e poi il suo alias, 'np'. Quindi, chiamiamo il metodo print() in modo da poter visualizzare il messaggio retable dei minimi quadrati per una migliore comprensione dell'utente.

Quindi, creiamo il nome dell'array 'x_axis' e memorizziamo l'array al suo interno usando la funzione arange(). Quindi, lo stampiamo usando il metodo print(). Quindi, creiamo un altro nome di array 'y_axis' e memorizziamo l'array in esso che abbiamo creato nell'illustrazione seguente.

Dopo aver creato entrambi gli array, implementiamo il metodo one() sull'array x_axis e lo memorizziamo in un altro array chiamato 'array_a'. E poi, stampiamo anche questo array. Creiamo un altro array chiamato 'arg_reg_line' e implementiamo una funzione linalg.lstsq() su di esso. Quindi, passiamo i parametri a questa funzione in modo da poter ottenere i minimi quadrati tra due array o punti. Il primo parametro è che prendiamo la trasposizione di array_a. Il secondo parametro è il secondo punto che è l'asse y. Quindi, abbiamo 'rcond' che contiene il valore 'none'. Quindi visualizziamo l'array usando il metodo print().

importare intontito come per esempio.

Stampa ( 'Implementazione della funzione linalg.lstsq(): ' )

x_asse = per esempio. arrangiare ( 0 , 10 )

Stampa ( ' \n Il valore dell'asse x sono: ' , x_asse )

asse_y = [ 10.3 , 10.5 , undici , 11.5 , 13.2 , 13.9 , 14 , 15.5 , 16.6 , 17 ]

Stampa ( ' \n I valori dell'asse y sono: ' , asse_y )

matrice_a = per esempio. Vettore ( [ x_asse , per esempio. quelli ( 10 ) ] )

Stampa ( ' \n L'array è: \n ' , matrice_a )

arg_reg_line = per esempio. semi di lino . lstq ( matrice_a. T , asse_y , secondo = Nessuno ) [ 0 ]

Stampa ( ' \n I parametri della linea di registrazione sono: ' , arg_reg_line )

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

importare matplotlib. pilota come plt

plt. complotto ( x_asse , reg_line , 'r-' )

plt. complotto ( x_asse , asse_y , 'O' )

plt. titolo ( 'Linea di regressione lineare' )

plt. etichetta x ( 'Asse X' )

plt. etichetta ( 'Asse Y' )

plt. mostrare ( )

Ecco l'output dell'esempio precedentemente implementato:

Importiamo un altro pacchetto di NumPy che è il pacchetto 'matplotlib' che viene utilizzato per tracciare il grafico. Quindi, tracciamo i valori dell'asse_x e i valori_asse_y. Successivamente, impostiamo il titolo e le etichette del grafico. Infine, visualizziamo il grafico usando il metodo show().

Ecco il grafico desiderato dell'esempio dato:

Conclusione

In questo articolo, abbiamo imparato qual è il minimo quadrato e come otteniamo linalg.lstsq() della variabile sconosciuta x usando l'equazione lineare ax=b. Abbiamo utilizzato molteplici funzioni di NumPy per trovare i minimi quadrati e implementato alcuni esempi con spiegazioni dettagliate per una migliore comprensione dell'utente.