NumPy najmanji kvadrati

Numpy Najmanji Kvadrati



Danas ćemo učiti o najmanjim kvadratima u linearnim jednadžbama i kako implementirati metodu najmanjih kvadrata za najbolje pristajanje regresijske linije u ponuđenim skupovima podataka. Ali prije toga, idemo steći osnovno znanje o NumPyju. NumPy je jedan od najboljih matematičkih paketa Pythona koji pruža usluge za višedimenzionalne nizove i matrice zajedno sa širokim rasponom složenih numeričkih operacija koje se mogu izvesti na tim matricama/poljovima.

Jedna od metoda Python lstsq() koristi se za pronalaženje regresijske linije poznate linearne jednadžbe ax=b koja najbolje odgovara ovoj jednadžbi. To znači da morate odrediti liniju koja ispravno pokazuje odnos između točaka x i y ako vaši podaci pokazuju da postoji. Pravac između obje točke poznat je kao regresijski pravac kada se koristi za pronalaženje najmanjeg kvadrata kroz ovu jednadžbu, ax=b.

Sintaksa:

Počnimo učiti stil implementacije funkcije linalg.lstsq(). Prvo pišemo naziv biblioteke koji koristimo u Pythonu, a to je 'numpy'. Zatim spajamo funkciju linalg() i spajamo funkciju lstsq(). Funkcija linalg() znači linearna algebra. Uvijek se koristi s funkcijom lstsq() jer je to linearni algebarski izraz. Nakon toga, prosljeđujemo argumente u funkcijskim zagradama.









Parametri:

Hajdemo razumjeti parametre funkcije linalg.lstsq():



točka1: To je matrica koeficijenata.





točka2: Ova matrica ili niz sadrži ovisne varijable.

drugi: Njegov tip podataka je float. Drugi omjer služi kao granična vrijednost za manje singularne vrijednosti točke_1. Ako je singularna vrijednost manja od rdrugog puta najvećeg singularnog elementa točke_1, smatra se nulom pri određivanju ranga.



Povratna vrijednost:

Zauzvrat, dobivamo najmanji kvadrat poznate varijable x u jednadžbi ax=b.

Primjer 1:

Počnimo implementirati naš prvi primjer metode najmanjih kvadrata Python biblioteke, NumPy. Prvo, trebamo Python kompajler kako bismo mogli kodirati u njemu. Otvorite kompajler. Također morate instalirati biblioteku NumPy jer koristimo jednu od funkcija NumPy-a, a to je funkcija lstsq(). Zatim u njega morate uvesti NumPy paket. Prvo napišite ključnu riječ “import” koja prevoditelju govori da ćemo uvesti paket. Zatim, moramo napisati naziv paketa koji koristimo u funkciji koja je “numpy”. Zatim, također pišemo alternativni naziv NumPy 'np' jer mnogi programeri koriste ovaj pristup. Ovo je dobar pristup programiranju i štedi vrijeme.

Nakon uvoza paketa počinjemo pisati stvarni redak koda koji želimo napraviti. Prvo ispisujemo poruke kako bi korisnik mogao lako razumjeti što radimo u primjeru koristeći print() naredbu. Jednodimenzionalni niz 'A' stvaramo pomoću funkcije array(), a zatim ga ispisujemo pozivom naredbe print(). Zatim stvaramo još jedan jednodimenzionalni niz 'B' pomoću funkcije array() i ispisujemo ga pomoću funkcije print().

uvoz numpy kao npr.

ispisati ( 'Implementacija metode najmanjeg kvadrata u NumPy: ' )

A = npr. niz ( [ 1 , dva , 1 , 1 , 1 , dva , dva , 1 , 1 ] )

ispisati ( ' \n Niz A je: ' , A )

B = npr. niz ( [ 4 , 3 , 5 , 4 , dva , 3 , 6 , 3 , dva ] )

ispisati ( ' \n Niz B je: ' , B )

x = npr. laneno sjeme . lstsq ( npr. vstack ( [ A , npr. one ( samo ( A ) ) ] ) . T , B , rcond = Nijedan ) [ 0 ]

ispisati ( ' \n Najmanji kvadrat je: ' , x )

Nakon stvaranja točaka A i B, implementiramo funkciju lstsq(). No, prvo koristimo funkciju vstack() za slaganje elemenata od 'A', redoslijedom. Zatim preuzimamo transponiranje niza 'A'. Zatim prosljeđujemo funkciju vstack() kao prvi argument funkcije lstsq(). Drugi argument je niz 'B', a treći argument je 'rcond' u kojem postavljamo vrijednost rcond kao 'none'. Zatim pohranjujemo cijelu funkciju u drugi niz pod nazivom “x” koji pokazuje da je to linearna jednadžba poznate varijable, ax=b. Nakon toga prikazujemo rezultate pa za to koristimo naredbu print() i u nju prosljeđujemo polje 'x'.

Primjer 2:

Sada počnimo implementirati još jedan primjer najmanjih kvadrata NumPy. Uvijek prvo uvozimo biblioteku koju koristimo u programu koji je NumPy. Prvo napišemo ključnu riječ 'uvoz' da bismo dobili paket u programu. Također pišemo naziv paketa koji je 'numpy', a zatim njegov alias, 'np'. Zatim pozivamo metodu print() kako bismo mogli prikazati retable poruku najmanjih kvadrata radi boljeg razumijevanja korisnika.

Zatim stvaramo polje s nazivom 'x_axis' i pohranjujemo polje u njega pomoću funkcije arange(). Zatim ga ispisujemo metodom print(). Zatim stvaramo još jedno polje pod nazivom 'y_axis' i u njega pohranjujemo polje koje smo stvorili na sljedećoj ilustraciji.

Nakon stvaranja oba niza, implementiramo metodu ones() na niz x_axis i pohranjujemo ga u drugi niz pod nazivom 'array_a'. Zatim ispisujemo i ovaj niz. Stvaramo još jedno polje pod nazivom “arg_reg_line” i na njemu implementiramo funkciju linalg.lstsq(). Zatim prosljeđujemo parametre ovoj funkciji tako da možemo dobiti najmanje kvadrate između dva niza ili točaka. Prvi parametar je da uzmemo transponiranje niza_a. Drugi parametar je druga točka koja je y_os. Zatim imamo “rcond” koji sadrži vrijednost “none”. Zatim prikazujemo niz pomoću metode print().

uvoz numpy kao npr.

ispisati ( 'Implementacija funkcije linalg.lstsq(): ' )

x_os = npr. urediti ( 0 , 10 )

ispisati ( ' \n Vrijednosti x osi su: ' , x_os )

y_os = [ 10.3 , 10.5 , jedanaest , 11.5 , 13.2 , 13.9 , 14 , 15.5 , 16.6 , 17 ]

ispisati ( ' \n Vrijednosti y osi su: ' , y_os )

polje_a = npr. niz ( [ x_os , npr. one ( 10 ) ] )

ispisati ( ' \n Niz je: \n ' , polje_a )

arg_reg_linija = npr. laneno sjeme . lstsq ( polje_a. T , y_os , rcond = Nijedan ) [ 0 ]

ispisati ( ' \n Parametri regresione linije su: ' , arg_reg_linija )

reg_linija = arg_reg_linija [ 0 ] * x_os + arg_reg_linija [ 1 ]

uvoz matplotlib. pyplot kao plt

plt. zemljište ( x_os , reg_linija , 'r-' )

plt. zemljište ( x_os , y_os , 'O' )

plt. titula ( 'Linija linearne regresije' )

plt. xlabel ( 'Os X' )

plt. ylabel ( 'Os Y' )

plt. pokazati ( )

Evo izlaza prethodno implementiranog primjera:

Uvozimo još jedan paket NumPy, a to je paket 'matplotlib' koji se koristi za crtanje grafikona. Zatim iscrtavamo vrijednosti x_osi i y_vrijednosti_osi. Zatim postavljamo naslov i oznake grafa. Na kraju, prikazujemo grafikon koristeći show() metodu.

Evo željenog grafa danog primjera:

Zaključak

U ovom smo članku naučili što je najmanji kvadrat i kako dobivamo linalg.lstsq() nepoznate varijable x pomoću linearne jednadžbe ax=b. Koristili smo višestruke funkcije NumPya za pronalaženje najmanjih kvadrata i implementirali neke primjere s detaljnim objašnjenjima za bolje razumijevanje korisnika.