NumPy najmanjši kvadrati

Numpy Najmanjsi Kvadrati



Danes se bomo naučili o metodi najmanjših kvadratov v linearnih enačbah in o tem, kako implementirati metodo najmanjših kvadratov za najboljšo prilagoditev regresijski črti v ponujenih nizih podatkov. Pred tem pa pridobimo osnovno znanje o NumPy. NumPy je eden najboljših matematičnih paketov Pythona, ki ponuja storitve za večdimenzionalne nize in matrike skupaj s širokim naborom zapletenih numeričnih operacij, ki se lahko izvajajo na teh matricah/matrikah.

Ena od metod Python lstsq() se uporablja za iskanje regresijske črte znane linearne enačbe ax=b, ki se najbolje ujema s to enačbo. To pomeni, da morate določiti črto, ki pravilno prikazuje razmerje med točkama x in y, če vaši podatki kažejo, da obstaja. Črta med obema točkama je znana kot regresijska črta, če se uporablja za iskanje najmanjšega kvadrata skozi to enačbo, ax=b.

Sintaksa:

Začnimo se učiti implementacijskega sloga funkcije linalg.lstsq(). Najprej napišemo ime knjižnice, ki ga uporabljamo v Pythonu in je »numpy«. Nato združimo funkcijo linalg() in združimo funkcijo lstsq(). Funkcija linalg() pomeni linearno algebro. Vedno se uporablja s funkcijo lstsq(), ker je linearni algebraični izraz. Po tem posredujemo argumente v funkcijskih oklepajih.









Parametri:

Razumejmo parametre funkcije linalg.lstsq():



točka1: To je matrika koeficientov.





točka2: Ta matrika ali niz vsebuje odvisne spremenljivke.

rdrugo: Njegov podatkovni tip je float. Rdrugo razmerje služi kot meja za manjše singularne vrednosti točke_1. Če je singularna vrednost manjša od rdrugega kratnika največjega singularnega elementa točke_1, se pri določanju ranga šteje za nič.



Povratna vrednost:

V zameno dobimo najmanjši kvadrat znane spremenljivke x v enačbi ax=b.

Primer 1:

Začnimo izvajati naš prvi primer metode najmanjših kvadratov knjižnice Python, NumPy. Najprej potrebujemo prevajalnik Python, da lahko v njem kodiramo. Odprite prevajalnik. Prav tako morate namestiti knjižnico NumPy, ker uporabljamo eno od funkcij NumPy, ki je funkcija lstsq(). Nato morate vanj uvoziti paket NumPy. Najprej napišite ključno besedo “import”, ki prevajalniku pove, da bomo uvozili paket. Nato moramo napisati ime paketa, ki ga uporabljamo v funkciji, ki je »numpy«. In potem napišemo tudi alternativno ime NumPy 'np', ker mnogi programerji uporabljajo ta pristop. To je dober programski pristop in prihrani čas.

Po uvozu paketa začnemo pisati dejansko vrstico kode, ki jo želimo narediti. Najprej natisnemo sporočila, da lahko uporabnik zlahka razume, kaj počnemo v primeru z uporabo stavka print(). Ustvarimo enodimenzionalno matriko 'A' s funkcijo array() in jo nato natisnemo s klicem izjave print(). Nato s funkcijo array() ustvarimo drugo enodimenzionalno matriko 'B' in jo natisnemo s funkcijo print().

uvoz numpy kot npr.

tiskanje ( 'Implementacija metode najmanjšega kvadrata v NumPy: ' )

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

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

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

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

X = npr. laneno seme . lstsq ( npr. vstack ( [ A , npr. tiste ( samo ( A ) ) ] ) . T , B , rcond = Noben ) [ 0 ]

tiskanje ( ' \n Najmanjši kvadrat je: ' , X )

Po izdelavi obeh točk A in B implementiramo funkcijo lstsq(). Toda najprej uporabimo funkcijo vstack() za zlaganje elementov »A« po zaporedju. Nato prevzamemo matriko 'A'. Nato posredujemo funkcijo vstack() kot prvi argument funkcije lstsq(). Drugi argument je matrika »B«, tretji argument pa je »rcond«, v katerem nastavimo vrednost rcond kot »none«. Nato celotno funkcijo shranimo v drugo matriko z imenom 'x', ki kaže, da gre za znano spremenljivo linearno enačbo, ax=b. Po tem prikažemo rezultate, tako da za to uporabimo stavek print() in vanj posredujemo matriko »x«.

Primer 2:

Zdaj pa začnimo izvajati še en primer najmanjših kvadratov NumPy. Vedno najprej uvozimo knjižnico, ki jo uporabimo v programu, ki je NumPy. Najprej napišemo ključno besedo “import”, da dobimo paket v programu. Napišemo tudi ime paketa, ki je 'numpy', nato pa njegov vzdevek 'np'. Nato pokličemo metodo print(), tako da lahko prikažemo sporočilo najmanjših kvadratov, ki je prikazano v tabeli, za boljše razumevanje uporabnika.

Nato ustvarimo matriko z imenom 'x_axis' in vanj shranimo matriko s funkcijo arange(). Nato ga natisnemo z metodo print(). Nato ustvarimo drugo matriko z imenom »y_axis« in vanjo shranimo matriko, ki smo jo ustvarili na naslednji sliki.

Ko ustvarimo obe matriki, implementiramo metodo ones() na matriko x_axis in jo shranimo v drugo matriko z imenom 'array_a'. In potem to matriko tudi natisnemo. Ustvarimo drugo matriko z imenom 'arg_reg_line' in na njej implementiramo funkcijo linalg.lstsq(). Nato tej funkciji posredujemo parametre, da lahko dobimo najmanjše kvadrate med dvema nizoma ali točkama. Prvi parameter je, da vzamemo transponacijo array_a. Drugi parameter je druga točka, ki je os y. Nato imamo 'rcond', ki vsebuje vrednost 'none'. Nato prikažemo matriko z metodo print().

uvoz numpy kot npr.

tiskanje ( 'Izvedba funkcije linalg.lstsq(): ' )

x_os = npr. urediti ( 0 , 10 )

tiskanje ( ' \n Vrednosti osi x so: ' , x_os )

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

tiskanje ( ' \n Vrednosti osi y so: ' , y_os )

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

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

arg_reg_line = npr. laneno seme . lstsq ( polje_a. T , y_os , rcond = Noben ) [ 0 ]

tiskanje ( ' \n Parametri regresijske črte so: ' , arg_reg_line )

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

uvoz matplotlib. pyplot kot plt

plt. plot ( x_os , reg_line , 'r-' )

plt. plot ( x_os , y_os , 'O' )

plt. naslov ( 'Linearna regresijska črta' )

plt. xlabel ( 'Os X' )

plt. ylabel ( 'Os Y' )

plt. pokazati ( )

Tukaj je rezultat predhodno implementiranega primera:

Uvozimo še en paket NumPy, ki je paket »matplotlib«, ki se uporablja za risanje grafa. Nato narišemo vrednosti osi x in vrednosti osi y. Nato nastavimo naslov in oznake grafa. Na koncu prikažemo graf z metodo show().

Tukaj je želeni graf danega primera:

Zaključek

V tem članku smo izvedeli, kaj je najmanjši kvadrat in kako dobimo linalg.lstsq() neznane spremenljivke x z uporabo linearne enačbe ax=b. Uporabili smo več funkcij NumPy za iskanje najmanjših kvadratov in implementirali nekaj primerov s podrobnimi razlagami za boljše razumevanje uporabnika.