Jak wykonać dopasowanie metodą najmniejszych kwadratów w numpy (z przykładem)


Metoda najmniejszych kwadratów to metoda, za pomocą której możemy znaleźć linię regresji, która najlepiej pasuje do danego zestawu danych.

Możemy użyć funkcji linalg.lstsq( ) w NumPy, aby wykonać dopasowanie metodą najmniejszych kwadratów.

Poniższy przykład krok po kroku pokazuje, jak w praktyce wykorzystać tę funkcję.

Krok 1: Wprowadź wartości X i Y

Zacznijmy od utworzenia następujących tablic 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])

Krok 2: Wykonaj dopasowanie metodą najmniejszych kwadratów

Możemy użyć poniższego kodu, aby przeprowadzić dopasowanie metodą najmniejszych kwadratów i znaleźć wiersz, który najlepiej „pasuje” do danych:

 #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])

Rezultatem jest tabela zawierająca wartości nachylenia i przecięcia linii najlepiej dopasowanej.

Z wyniku możemy zobaczyć:

  • Nachylenie: 0,969
  • Kradnie: 7767

Korzystając z tych dwóch wartości, możemy zapisać równanie linii najlepszego dopasowania:

ŷ = 7,767 + 0,969x

Krok 3: Interpretacja wyników

Oto jak zinterpretować linię najlepszego dopasowania:

  • Gdy x wynosi 0, średnia wartość y wynosi 7,767 .
  • Na każdą jednostkę wzrostu x, y wzrasta średnio o 0,969 .

Możemy również użyć linii najlepszego dopasowania, aby przewidzieć wartość y na podstawie wartości x.

Na przykład, jeśli xa ma wartość 10, wówczas przewidujemy, że wartość y wyniesie 17,457 :

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

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w NumPy:

Jak usunąć określone elementy z tablicy NumPy
Jak uzyskać indeks maksymalnej wartości w tablicy NumPy
Jak wypełnić tablicę NumPy wartościami

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *