NumPy vähim ruudud

Numpy Vahim Ruudud



Täna õpime tundma lineaarvõrrandite vähimruutude kohta ja seda, kuidas rakendada vähimruutude meetodit, et tagada regressioonijoonele parim sobivus esitatud andmekogumites. Kuid enne seda omandame NumPy põhiteadmised. NumPy on Pythoni üks parimaid matemaatilisi pakette, mis pakub teenuseid mitmemõõtmeliste massiivide ja maatriksite jaoks ning laia valikut keerukaid arvulisi operatsioone, mida saab nende maatriksite/massiividega teha.

Üht Pythoni lstsq() meetodit kasutatakse teadaoleva lineaarvõrrandi ax=b regressioonisirge, mis selle võrrandiga kõige paremini sobib. See tähendab, et peate määrama joone, mis näitab õigesti x- ja y-punktide vahelist suhet, kui teie andmed näitavad, et see on olemas. Mõlema punkti vahelist joont nimetatakse regressioonijooneks, kui seda kasutatakse vähima ruudu leidmiseks selle võrrandi kaudu, ax=b.

Süntaks:

Alustame funktsiooni linalg.lstsq() rakendusstiili õppimist. Esiteks kirjutame Pythonis kasutatava teegi nime, mis on 'numpy'. Seejärel ühendame funktsiooni linalg () ja funktsiooni lstsq (). Funktsioon linalg() tähendab lineaarset algebrat. Seda kasutatakse alati koos funktsiooniga lstsq(), kuna see on lineaarne algebraline avaldis. Pärast seda edastame argumendid funktsioonisulgudes.









Parameetrid:

Saame aru funktsiooni linalg.lstsq() parameetritest:



punkt 1: See on koefitsiendi maatriks.





punkt 2: See maatriks või massiiv sisaldab sõltuvaid muutujaid.

rcond: Selle andmetüüp on ujuv. Rcond suhe toimib punkti_1 väiksemate ainsuse väärtuste piirväärtusena. Kui ainsuse väärtus on väiksem kui punkti_1 suurima ainsuse elemendi rcond korda, loetakse see auastme määramisel nulliks.



Tagastusväärtus:

Vastutasuks saame teadaoleva muutuja x vähima ruudu võrrandis ax=b.

Näide 1:

Alustame oma esimese Pythoni teegi vähimruudu meetodi NumPy näite rakendamist. Esiteks vajame Pythoni kompilaatorit, et saaksime selles kodeerida. Avage kompilaator. Samuti peate installima NumPy teegi, kuna kasutame ühte NumPy funktsioonidest, mis on funktsioon lstsq (). Seejärel peate importima selles sisalduva NumPy paketi. Esmalt kirjutage märksõna 'import', mis ütleb kompilaatorile, et kavatseme paketi importida. Seejärel peame kirjutama paketi nime, mida kasutame funktsioonis 'numpy'. Ja siis kirjutame ka NumPy alternatiivse nime 'np', kuna paljud programmeerijad kasutavad seda lähenemisviisi. See on hea programmeerimisviis ja säästab aega.

Pärast paketi importimist hakkame kirjutama tegelikku koodirida, mida tahame teha. Trükime kõigepealt välja sõnumid, et kasutaja saaks print() lause abil hõlpsasti aru, mida me näites teeme. Loome ühemõõtmelise massiivi 'A' kasutades array() funktsiooni ja seejärel prindime selle print() lausega. Seejärel loome funktsiooni array() abil veel ühe ühemõõtmelise massiivi “B” ja prindime selle funktsiooni print() abil.

importida tuim nagu nt.

printida ( Vähimruutude meetodi rakendamine NumPy's: )

A = nt. massiivi ( [ 1 , kaks , 1 , 1 , 1 , kaks , kaks , 1 , 1 ] )

printida ( ' \n Massiiv A on: ' , A )

B = nt. massiivi ( [ 4 , 3 , 5 , 4 , kaks , 3 , 6 , 3 , kaks ] )

printida ( ' \n Massiiv B on: ' , B )

X = nt. linaseemned . lstsq ( nt. vstack ( [ A , nt. ühed ( ainult ( A ) ) ] ) . T , B , rcond = Mitte ühtegi ) [ 0 ]

printida ( ' \n Vähim ruut on: ' , X )

Pärast punktide A ja B loomist rakendame funktsiooni lstsq(). Kuid kõigepealt kasutame funktsiooni vstack(), et virnastada A elemendid järjestikku. Seejärel võtame massiivi A transponeerimise. Seejärel edastame funktsiooni vstack() funktsiooni lstsq() esimese argumendina. Teine argument on massiiv 'B' ja kolmas argument on 'rcond', milles me määrame rcond väärtuseks 'puudub'. Seejärel salvestame kogu funktsiooni teise massiivi nimega “x”, mis näitab, et see on tuntud muutuja lineaarvõrrand, ax=b. Pärast seda kuvame tulemused, nii et kasutame selle jaoks print()-lauset ja edastame selles massiivi 'x'.

Näide 2:

Nüüd alustame NumPy vähimruutude teise näite rakendamist. Impordime alati esmalt teegi, mida kasutame programmis, mis on NumPy. Esmalt kirjutame märksõna “import”, et pakett programmi saada. Kirjutame ka paketi nime, mis on 'numpy' ja seejärel tema varjunime 'np'. Seejärel kutsume välja print() meetodi, et saaksime kuvada vähimruutude korduvteate, et kasutajast paremini aru saada.

Seejärel loome massiivi nime “x_axis” ja salvestame massiivi sellesse funktsiooni arange() abil. Seejärel prindime selle print() meetodi abil. Seejärel loome teise massiivi nime 'y_axis' ja salvestame sellesse massiivi, mille lõime järgmisel joonisel.

Pärast mõlema massiivi loomist rakendame massiivi x_axis meetodi ones() ja salvestame selle teise massiivi nimega 'massiivi_a'. Ja siis prindime ka selle massiivi. Loome teise massiivi nimega 'arg_reg_line' ja rakendame selles funktsiooni linalg.lstsq(). Seejärel edastame parameetrid sellele funktsioonile, et saaksime kahe massiivi või punkti vahel kõige vähem ruute. Esimene parameeter on see, et võtame massiivi_a transponeerimise. Teine parameeter on teine ​​punkt, mis on y_telg. Seejärel on meil 'rcond', mis sisaldab väärtust 'none'. Seejärel kuvame massiivi print() meetodi abil.

importida tuim nagu nt.

printida ( 'Funktsiooni linalg.lstsq() rakendamine: ' )

x_telg = nt. korraldada ( 0 , 10 )

printida ( ' \n X-telje väärtused on: ' , x_telg )

y_telg = [ 10.3 , 10.5 , üksteist , 11.5 , 13.2 , 13.9 , 14 , 15.5 , 16.6 , 17 ]

printida ( ' \n Y-telje väärtused on: ' , y_telg )

massiiv_a = nt. massiivi ( [ x_telg , nt. ühed ( 10 ) ] )

printida ( ' \n Massiiv on: \n ' , massiiv_a )

arg_reg_line = nt. linaseemned . lstsq ( massiiv_a. T , y_telg , rcond = Mitte ühtegi ) [ 0 ]

printida ( ' \n Regressioonijoone parameetrid on järgmised: , arg_reg_line )

reg_rida = arg_reg_line [ 0 ] * x_telg + arg_reg_rida [ 1 ]

importida matplotlib. pyplot nagu plt

plt. süžee ( x_telg , reg_rida , 'r-' )

plt. süžee ( x_telg , y_telg , 'o' )

plt. pealkiri ( 'Lineaarne regressioonijoon' )

plt. xlabel ( 'X-telg' )

plt. silt ( 'Y-telg' )

plt. näidata ( )

Siin on eelnevalt rakendatud näite väljund:

Impordime teise NumPy paketi, mis on pakett 'matplotlib', mida kasutatakse graafiku joonistamiseks. Seejärel joonistame x_telje väärtused ja y_telje_väärtused. Järgmisena määrame graafiku pealkirja ja sildid. Lõpuks kuvame graafiku kasutades show() meetodit.

Siin on antud näite soovitud graafik:

Järeldus

Sellest artiklist saime teada, mis on vähim ruut ja kuidas saame lineaarvõrrandi ax=b abil tundmatu muutuja x linalg.lstsq(). Vähimruutude leidmiseks kasutasime mitmeid NumPy funktsioone ja kasutasime kasutaja paremaks mõistmiseks mõned näited koos üksikasjalike selgitustega.