Come eseguire l'adattamento dei minimi quadrati in numpy (con esempio)


Il metodo dei minimi quadrati è un metodo che possiamo utilizzare per trovare la retta di regressione che meglio si adatta a un dato insieme di dati.

Possiamo usare la funzione linalg.lstsq( ) in NumPy per eseguire una regolazione dei minimi quadrati.

Il seguente esempio passo passo mostra come utilizzare questa funzione nella pratica.

Passaggio 1: inserisci i valori per X e Y

Iniziamo creando i seguenti array NumPy:

 import numpy as np

#define x and y arrays
x = np. array ([6, 7, 7, 8, 12, 14, 15, 16, 16, 19])

y = np. array ([14, 15, 15, 17, 18, 18, 19, 24, 25, 29])

Passaggio 2: eseguire la regolazione dei minimi quadrati

Possiamo utilizzare il codice seguente per eseguire un adattamento ai minimi quadrati e trovare la riga che meglio “si adatta” ai dati:

 #perform least squares fitting
n.p. linalg . lstsq (np. vstack ([x, np. ones ( len (x))]). T , y, rcond= None )[ 0 ]

array([0.96938776, 7.76734694])

Il risultato è una tabella contenente i valori di pendenza e di intercetta della retta più adatta.

Dal risultato possiamo vedere:

  • Pendenza: 0,969
  • Rubate: 7.767

Utilizzando questi due valori, possiamo scrivere l’equazione per la retta di miglior adattamento:

ŷ = 7,767 + 0,969x

Passaggio 3: interpretare i risultati

Ecco come interpretare la retta di best fit:

  • Quando x è 0, il valore medio di y è 7,767 .
  • Per ogni aumento unitario di x, y aumenta in media di 0,969 .

Possiamo anche utilizzare la linea di adattamento migliore per prevedere il valore di y in base al valore di x.

Ad esempio, se xa ha un valore pari a 10, allora prevediamo che il valore di y sarà 17.457 :

  • ŷ = 7,767 + 0,969x
  • ŷ = 7,767 + 0,969(10)
  • ŷ = 17.457

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in NumPy:

Come rimuovere elementi specifici dall’array NumPy
Come ottenere l’indice del valore massimo nell’array NumPy
Come riempire un array NumPy con valori

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *