NumPy pienintä neliötä

Numpy Pieninta Neliota



Tänään aiomme oppia pienimmän neliösumman lineaarisissa yhtälöissä ja kuinka ottaa käyttöön pienimmän neliösumman menetelmä, jotta se sopisi parhaiten regressioviivalle toimitetuissa tietojoukoissa. Mutta ennen sitä, hankitaan perustiedot NumPysta. NumPy on yksi Pythonin parhaista matemaattisista paketeista, joka tarjoaa palveluita moniulotteisille taulukoille ja matriiseille sekä laajan valikoiman monimutkaisia ​​numeerisia operaatioita, joita voidaan suorittaa näille matriiseille/taulukoille.

Yhtä Python lstsq() -menetelmää käytetään löytämään tunnetun lineaarisen yhtälön ax=b regressioviiva, joka sopii parhaiten tähän yhtälöön. Tämä tarkoittaa, että sinun on määritettävä viiva, joka näyttää oikein x- ja y-pisteiden välisen suhteen, jos tietosi osoittavat, että sellainen on olemassa. Molempien pisteiden välinen suora tunnetaan regressioviivana, kun sitä käytetään etsimään tämän yhtälön pienin neliösumma, ax=b.

Syntaksi:

Aloitetaan linalg.lstsq()-funktion toteutustyylin oppiminen. Ensin kirjoitamme Pythonissa käyttämämme kirjaston nimen, joka on 'numpy'. Sitten ketjutetaan linalg()-funktio ja lstsq()-funktio. Funktio linalg() tarkoittaa lineaarista algebraa. Sitä käytetään aina lstsq()-funktion kanssa, koska se on lineaarinen algebrallinen lauseke. Tämän jälkeen välitämme argumentit funktion suluissa.









Parametrit:

Ymmärretään linalg.lstsq()-funktion parametrit:



kohta 1: Se on kerroinmatriisi.





kohta 2: Tämä matriisi tai matriisi sisältää riippuvia muuttujia.

rcond: Sen tietotyyppi on float. Rcond-suhde toimii rajana pisteen_1 pienemmille yksittäisarvoille. Jos yksittäinen arvo on pienempi kuin rcond kertaa pisteen_1 suurin singulaarielementti, sitä pidetään nollana järjestystä määritettäessä.



Palautusarvo:

Vastineeksi saamme tunnetun muuttujan x pienimmän neliösumman yhtälössä ax=b.

Esimerkki 1:

Aloitetaan ensimmäisen esimerkkimme toteuttaminen Python-kirjaston pienimmän neliösumman menetelmästä, NumPy. Ensinnäkin tarvitsemme Python-kääntäjän, jotta voimme koodata siihen. Avaa kääntäjä. Sinun on myös asennettava NumPy-kirjasto, koska käytämme yhtä NumPyn funktioista, joka on lstsq()-funktio. Sitten sinun on tuotava NumPy-paketti siihen. Kirjoita ensin avainsana 'tuonti', joka kertoo kääntäjälle, että aiomme tuoda paketin. Sitten meidän on kirjoitettava paketin nimi, jota käytämme funktiossa, joka on 'numpy'. Ja sitten kirjoitamme myös NumPy:n vaihtoehtoisen nimen 'np', koska monet ohjelmoijat käyttävät tätä lähestymistapaa. Tämä on hyvä ohjelmointitapa ja säästää aikaa.

Paketin tuonnin jälkeen alamme kirjoittaa varsinaista koodiriviä, jonka haluamme tehdä. Tulostamme viestit ensin, jotta käyttäjä voi helposti ymmärtää mitä olemme tekemässä esimerkissä print()-käskyn avulla. Luomme yksiulotteisen taulukon “A” array()-funktiolla ja tulostamme sen sitten kutsumalla print()-käskyä. Sitten luomme toisen yksiulotteisen taulukon “B” array()-funktiolla ja tulostamme sen print()-funktiolla.

tuonti nuhjuinen kuten esim.

Tulosta ( 'Pienimmän neliösumman menetelmän käyttöönotto NumPyssa: ' )

A = esim. joukko ( [ 1 , kaksi , 1 , 1 , 1 , kaksi , kaksi , 1 , 1 ] )

Tulosta ( ' \n Taulukko A on: ' , A )

B = esim. joukko ( [ 4 , 3 , 5 , 4 , kaksi , 3 , 6 , 3 , kaksi ] )

Tulosta ( ' \n Taulukko B on: ' , B )

X = esim. pellavansiemeniä . lstsq ( esim. vstack ( [ A , esim. yhdet ( vain ( A ) ) ] ) . T , B , rcond = Ei mitään ) [ 0 ]

Tulosta ( ' \n Pienin neliö on: ' , X )

Kun molemmat pisteet A ja B on luotu, toteutamme lstsq()-funktion. Mutta ensin käytämme vstack()-funktiota pinoamaan 'A':n elementit järjestyksessä. Sitten otamme taulukon 'A' transponoinnin. Sitten välitämme vstack()-funktion lstsq()-funktion ensimmäisenä argumenttina. Toinen argumentti on 'B'-taulukko ja kolmas argumentti 'rcond', jossa asetamme rcond-arvon arvoksi 'ei mitään'. Sitten tallennamme koko funktion toiseen taulukkoon nimeltä “x”, joka osoittaa, että se on tunnettu muuttujan lineaarinen yhtälö, ax=b. Tämän jälkeen näytämme tulokset, joten käytämme tähän print()-käskyä ja välitämme siihen 'x'-taulukon.

Esimerkki 2:

Aloitetaan nyt toisen esimerkin toteuttaminen NumPy-pieninneliöistä. Tuomme aina ensin kirjaston, jota käytämme ohjelmassa, joka on NumPy. Ensin kirjoitamme avainsanan 'tuonti' saadaksemme paketin ohjelmaan. Kirjoitamme myös paketin nimen, joka on 'numpy' ja sitten hänen aliaksensa 'np'. Sitten kutsumme print()-menetelmää, jotta voimme näyttää pienimmän neliösumman retable-viestin ymmärtääksemme paremmin käyttäjää.

Sitten luomme taulukon nimen “x_axis” ja tallennamme taulukon siihen käyttämällä arange()-funktiota. Sitten tulostamme sen print()-menetelmällä. Sitten luomme toisen taulukon nimen 'y_axis' ja tallennamme siihen taulukon, jonka loimme seuraavassa kuvassa.

Kun olet luonut molemmat taulukot, toteutamme ones()-metodin x_axis-taulukossa ja tallennamme sen toiseen taulukkoon nimeltä 'array_a'. Ja sitten tulostamme myös tämän taulukon. Luomme toisen taulukon nimeltä 'arg_reg_line' ja toteutamme siihen linalg.lstsq()-funktion. Sitten välitämme parametrit tälle funktiolle, jotta voimme saada pienimmän neliösumman kahden taulukon tai pisteen välillä. Ensimmäinen parametri on, että transponoimme taulukon_a. Toinen parametri on toinen piste, joka on y_akseli. Sitten meillä on 'rcond', joka sisältää 'none'-arvon. Näytämme sitten taulukon print()-menetelmällä.

tuonti nuhjuinen kuten esim.

Tulosta ( 'Linalg.lstsq()-funktion toteutus: ' )

x_akseli = esim. järjestää ( 0 , 10 )

Tulosta ( ' \n X-akselin arvot ovat: ' , x_akseli )

y_akseli = [ 10.3 , 10.5 , yksitoista , 11.5 , 13.2 , 13.9 , 14 , 15.5 , 16.6 , 17 ]

Tulosta ( ' \n Y-akselin arvot ovat: ' , y_akseli )

array_a = esim. joukko ( [ x_akseli , esim. yhdet ( 10 ) ] )

Tulosta ( ' \n Array on: \n ' , array_a )

arg_reg_line = esim. pellavansiemeniä . lstsq ( array_a. T , y_akseli , rcond = Ei mitään ) [ 0 ]

Tulosta ( ' \n Regrssiolinjan parametrit ovat: ' , arg_reg_line )

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

tuonti matplotlib. pyplot kuten plt

plt. juoni ( x_akseli , reg_line , 'r-' )

plt. juoni ( x_akseli , y_akseli , 'o' )

plt. otsikko ( 'Lineaarinen regressioviiva' )

plt. xlabel ( 'X-akseli' )

plt. ylabel ( 'Y-akseli' )

plt. näytä ( )

Tässä on aiemmin toteutetun esimerkin tulos:

Tuomme toisen NumPy-paketin, joka on 'matplotlib'-paketti, jota käytetään kuvaajan piirtämiseen. Sitten piirrämme x_akselin arvot ja y_akselin_arvot. Seuraavaksi asetamme kaavion otsikon ja tunnisteet. Lopuksi näytämme kaavion käyttämällä show()-menetelmää.

Tässä on haluttu kaavio annetusta esimerkistä:

Johtopäätös

Tässä artikkelissa opimme, mikä on pienin neliösumma ja kuinka saamme tuntemattoman muuttujan x linalg.lstsq() lineaarisen yhtälön ax=b avulla. Käytimme useita NumPyn toimintoja löytääksemme pienimmän neliösumman ja toteutimme joitain esimerkkejä yksityiskohtaisilla selityksillä ymmärtääksemme paremmin käyttäjää.