NumPy najmniejszych kwadratów

Numpy Najmniejszych Kwadratow



Dzisiaj dowiemy się o najmniejszych kwadratach w równaniach liniowych i jak zaimplementować metodę najmniejszych kwadratów dla najlepszego dopasowania linii regresji w dostarczonych zbiorach danych. Ale wcześniej zdobądźmy podstawową wiedzę o NumPy. NumPy to jeden z najlepszych pakietów matematycznych Pythona, który zapewnia usługi dla wielowymiarowych tablic i macierzy wraz z szeroką gamą złożonych operacji numerycznych, które można wykonywać na tych macierzach/macierzach.

Jedna z metod Pythona lstsq() służy do znalezienia linii regresji znanego równania liniowego ax=b, która najlepiej pasuje do tego równania. Oznacza to, że musisz określić linię, która prawidłowo pokazuje zależność między punktami x i y, jeśli twoje dane wskazują, że istnieje. Linia między obydwoma punktami jest znana jako linia regresji, gdy jest używana do znalezienia najmniejszego kwadratu w tym równaniu, ax=b.

Składnia:

Zacznijmy uczyć się stylu implementacji funkcji linalg.lstsq(). Najpierw piszemy nazwę biblioteki, której używamy w Pythonie, czyli „numpy”. Następnie łączymy funkcję linalg() i łączymy funkcję lstsq(). Funkcja linalg() oznacza algebrę liniową. Jest zawsze używany z funkcją lstsq(), ponieważ jest liniowym wyrażeniem algebraicznym. Następnie przekazujemy argumenty w nawiasach funkcji.









Parametry:

Rozumiemy parametry funkcji linalg.lstsq():



punkt 1: Jest to macierz współczynników.





punkt2: Ta macierz lub tablica zawiera zmienne zależne.

rcond: Jego typ danych to float. Współczynnik rcond służy jako punkt odcięcia dla mniejszych pojedynczych wartości punktu_1. Jeśli wartość osobliwa jest mniejsza niż rcond razy największy osobliwy element punktu_1, przy określaniu rangi jest ona uważana za zero.



Wartość zwrotu:

W zamian otrzymujemy najmniejszy kwadrat znanej zmiennej x w równaniu ax=b.

Przykład 1:

Zacznijmy implementację naszego pierwszego przykładu metody najmniejszych kwadratów z biblioteki Pythona, NumPy. Po pierwsze, potrzebujemy kompilatora Pythona, abyśmy mogli w nim kodować. Otwórz kompilator. Musisz również zainstalować bibliotekę NumPy, ponieważ używamy jednej z funkcji NumPy, czyli funkcji lstsq(). Następnie musisz zaimportować do niego pakiet NumPy. Najpierw napisz słowo kluczowe „import”, które mówi kompilatorowi, że zamierzamy zaimportować pakiet. Następnie musimy wpisać nazwę pakietu, której używamy w funkcji, czyli „numpy”. A potem piszemy również alternatywną nazwę NumPy „np”, ponieważ wielu programistów korzysta z tego podejścia. To dobre podejście do programowania i oszczędza czas.

Po zaimportowaniu pakietu zaczynamy pisać aktualną linię kodu, którą chcemy wykonać. Najpierw wyświetlamy komunikaty, aby użytkownik mógł łatwo zrozumieć, co robimy w przykładzie za pomocą instrukcji print(). Tworzymy jednowymiarową tablicę „A” za pomocą funkcji array(), a następnie wypisujemy ją, wywołując instrukcję print(). Następnie tworzymy kolejną jednowymiarową tablicę „B” za pomocą funkcji array() i wypisujemy ją za pomocą funkcji print().

import numpy jak np

wydrukować ( „Wdrożenie metody najmniejszych kwadratów w NumPy:” )

A = np. szyk ( [ 1 , dwa , 1 , 1 , 1 , dwa , dwa , 1 , 1 ] )

wydrukować ( ' \n Tablica A to: „ , A )

B = np. szyk ( [ 4 , 3 , 5 , 4 , dwa , 3 , 6 , 3 , dwa ] )

wydrukować ( ' \n Tablica B to: ' , B )

X = np. siemię lniane . lstsq ( np. vsstack ( [ A , np. te ( tylko ( A ) ) ] ) . T , B , rcond = Nic ) [ 0 ]

wydrukować ( ' \n Najmniejszy kwadrat to: „ , X )

Po utworzeniu obu punktów A i B implementujemy funkcję lstsq(). Ale najpierw używamy funkcji vsstack() do układania elementów „A” pod względem sekwencji. Następnie wykonujemy transpozycję tablicy „A”. Następnie przekazujemy funkcję vsstack() jako pierwszy argument funkcji lstsq(). Drugim argumentem jest tablica „B”, a trzecim argumentem „rcond”, w którym ustawiamy wartość rcond na „none”. Następnie przechowujemy całą funkcję w innej tablicy o nazwie „x”, która pokazuje, że jest to równanie liniowe znanej zmiennej, ax=b. Następnie wyświetlamy wyniki, więc używamy do tego instrukcji print() i przekazujemy do niej tablicę „x”.

Przykład 2:

Teraz zacznijmy implementować kolejny przykład najmniejszych kwadratów NumPy. Zawsze najpierw importujemy bibliotekę, której używamy w programie, którym jest NumPy. Najpierw piszemy słowo kluczowe „import”, aby uzyskać pakiet w programie. Piszemy również nazwę pakietu, która to „numpy”, a następnie jego alias „np”. Następnie wywołujemy metodę print(), dzięki czemu możemy wyświetlić komunikat o ponownej tabeli najmniejszych kwadratów w celu lepszego zrozumienia użytkownika.

Następnie tworzymy tablicę o nazwie „x_axis” i przechowujemy w niej tablicę za pomocą funkcji arange(). Następnie wypisujemy go za pomocą metody print(). Następnie tworzymy kolejną tablicę o nazwie „oś_y” i przechowujemy w niej tablicę, którą utworzyliśmy na poniższej ilustracji.

Po utworzeniu obu tablic implementujemy metodę ones() na tablicy x_axis i przechowujemy ją w innej tablicy o nazwie „array_a”. A potem również wypisujemy tę tablicę. Tworzymy kolejną tablicę o nazwie „arg_reg_line” i implementujemy na niej funkcję linalg.lstsq(). Następnie przekazujemy parametry do tej funkcji, aby uzyskać jak najmniejsze kwadraty między dwiema tablicami lub punktami. Pierwszym parametrem jest to, że wykonujemy transpozycję array_a. Drugim parametrem jest drugi punkt, którym jest oś y. Następnie mamy „rcond”, który zawiera wartość „none”. Następnie wyświetlamy tablicę za pomocą metody print().

import numpy jak np

wydrukować ( 'Implementacja funkcji linalg.lstsq(): ' )

x_oś = np. ułożyć ( 0 , 10 )

wydrukować ( ' \n Wartości osi x to: ' , x_oś )

oś y = [ 10.3 , 10,5 , jedenaście , 11,5 , 13.2 , 13,9 , 14 , 15,5 , 16,6 , 17 ]

wydrukować ( ' \n Wartość osi y to: ' , oś y )

tablica_a = np. szyk ( [ x_oś , np. te ( 10 ) ] )

wydrukować ( ' \n Tablica to: \n ' , tablica_a )

arg_reg_line = np. siemię lniane . lstsq ( tablica_a. T , oś y , rcond = Nic ) [ 0 ]

wydrukować ( ' \n Parametry linii regresji to: ' , arg_reg_line )

reg_line = arg_reg_line [ 0 ] * oś x + arg_reg_line [ 1 ]

import matplotlib. pyplot jak plt

pl. intrygować ( x_oś , reg_line , 'r-' )

pl. intrygować ( x_oś , oś y , „O” )

pl. tytuł ( „Linia regresji liniowej” )

pl. xetykieta ( „Oś X” )

pl. ylabel ( „Oś Y” )

pl. pokazać ( )

Oto wynik poprzednio zaimplementowanego przykładu:

Importujemy kolejny pakiet NumPy, który jest pakietem „matplotlib”, który służy do kreślenia wykresu. Następnie wykreślamy wartości osi x i wartości_oś_y. Następnie ustawiamy tytuł i etykiety wykresu. Na koniec wyświetlamy wykres za pomocą metody show().

Oto pożądany wykres z podanego przykładu:

Wniosek

W tym artykule dowiedzieliśmy się, co jest najmniejszym kwadratem i jak uzyskujemy linalg.lstsq() nieznanej zmiennej x przy użyciu równania liniowego ax=b. Wykorzystaliśmy wiele funkcji NumPy, aby znaleźć najmniejsze kwadraty i zaimplementowaliśmy kilka przykładów ze szczegółowymi wyjaśnieniami, aby lepiej zrozumieć użytkownika.