NumPy mazākie kvadrāti

Numpy Mazakie Kvadrati



Šodien mēs uzzināsim par mazākajiem kvadrātiem lineāros vienādojumos un to, kā ieviest mazāko kvadrātu metodi, lai sniegtajās datu kopās vislabāk atbilstu regresijas līnijai. Bet pirms tam iegūsim pamatzināšanas par NumPy. NumPy ir viena no labākajām Python matemātiskajām pakotnēm, kas nodrošina pakalpojumus daudzdimensiju masīviem un matricām, kā arī plašu sarežģītu skaitlisko darbību klāstu, ko var veikt ar šīm matricām/masīvām.

Viena no Python lstsq() metodēm tiek izmantota, lai atrastu zināmā lineārā vienādojuma ax=b regresijas taisni, kas vislabāk atbilst šim vienādojumam. Tas nozīmē, ka jums ir jānosaka līnija, kas pareizi parāda attiecības starp x un y punktiem, ja jūsu dati liecina, ka tāds ir. Līnija starp abiem punktiem ir pazīstama kā regresijas līnija, ja to izmanto, lai atrastu mazāko kvadrātu caur šo vienādojumu, ax=b.

Sintakse:

Sāksim apgūt funkcijas linalg.lstsq() ieviešanas stilu. Pirmkārt, mēs rakstām bibliotēkas nosaukumu, ko izmantojam Python un kas ir “neskaidrs”. Pēc tam mēs savienojam funkciju linalg () un savienojam funkciju lstsq (). Funkcija linalg() nozīmē lineāro algebru. To vienmēr izmanto ar funkciju lstsq(), jo tā ir lineāra algebriskā izteiksme. Pēc tam mēs nododam argumentus funkciju iekavās.









Parametri:

Izpratīsim funkcijas linalg.lstsq() parametrus:



punkts1: Tā ir koeficientu matrica.





punkts 2: Šī matrica vai masīvs satur atkarīgus mainīgos.

rcond: Tā datu tips ir peldošs. Rcond attiecība kalpo kā robežvērtība mazākām punkta_1 vienskaitļa vērtībām. Ja vienskaitļa vērtība ir mazāka par rcond, kas reizināts ar punkta_1 lielāko vienskaitļa elementu, tā tiek uzskatīta par nulli, nosakot rangu.



Atgriešanas vērtība:

Pretī mēs iegūstam zināmā mainīgā x mazāko kvadrātu vienādojumā ax=b.

1. piemērs:

Sāksim ieviest mūsu pirmo Python bibliotēkas mazākā kvadrāta metodes NumPy piemēru. Pirmkārt, mums ir nepieciešams Python kompilators, lai mēs varētu tajā kodēt. Atveriet kompilatoru. Jums arī jāinstalē NumPy bibliotēka, jo mēs izmantojam vienu no NumPy funkcijām, kas ir funkcija lstsq (). Pēc tam tajā ir jāimportē NumPy pakotne. Vispirms ierakstiet atslēgvārdu “imports”, kas norāda kompilatoram, ka mēs importēsim paketi. Pēc tam mums ir jāraksta pakotnes nosaukums, kuru mēs izmantojam funkcijā “numpy”. Un tad mēs arī rakstām alternatīvo NumPy nosaukumu “np”, jo daudzi programmētāji izmanto šo pieeju. Šī ir laba programmēšanas pieeja, kas ietaupa laiku.

Pēc pakotnes importēšanas mēs sākam rakstīt faktisko koda rindiņu, kuru vēlamies darīt. Vispirms mēs izdrukājam ziņojumus, lai lietotājs varētu viegli saprast, ko mēs darām piemērā, izmantojot priekšrakstu print(). Mēs izveidojam viendimensijas masīvu “A”, izmantojot funkciju array() un pēc tam izdrukājam to, izsaucot print() paziņojumu. Pēc tam mēs izveidojam vēl vienu viendimensijas masīvu “B”, izmantojot funkciju array() un izdrukājam to, izmantojot funkciju print().

imports nejutīgs piem.

drukāt ( Mazākā kvadrāta metodes ieviešana programmā NumPy: )

A = piem. masīvs ( [ 1 , divi , 1 , 1 , 1 , divi , divi , 1 , 1 ] )

drukāt ( ' \n Masīvs A ir: ' , A )

B = piem. masīvs ( [ 4 , 3 , 5 , 4 , divi , 3 , 6 , 3 , divi ] )

drukāt ( ' \n Masīvs B ir: ' , B )

X = piem. linsēklas . lstsq ( piem. vstack ( [ A , piem. vieni ( tikai ( A ) ) ] ) . T , B , rcond = Nav ) [ 0 ]

drukāt ( ' \n Mazākais laukums ir: ' , X )

Pēc abu punktu A un B izveides mēs realizējam funkciju lstsq(). Bet vispirms mēs izmantojam funkciju vstack(), lai sakārtotu “A” elementus secīgi. Pēc tam mēs transponējam masīvu “A”. Pēc tam mēs nododam funkciju vstack() kā funkcijas lstsq() pirmo argumentu. Otrais arguments ir “B” masīvs, bet trešais arguments ir “rcond”, kurā mēs iestatām rcond vērtību kā “none”. Pēc tam mēs saglabājam visu funkciju citā masīvā ar nosaukumu “x”, kas parāda, ka tas ir zināmais mainīgā lineārais vienādojums, ax=b. Pēc tam mēs parādām rezultātus, tāpēc šim nolūkam izmantojam priekšrakstu print () un nododam tajā masīvu “x”.

2. piemērs:

Tagad sāksim ieviest citu NumPy mazāko kvadrātu piemēru. Mēs vienmēr vispirms importējam bibliotēku, ko izmantojam programmā, kas ir NumPy. Pirmkārt, mēs ierakstām atslēgvārdu “importēt”, lai programmā iekļautu paketi. Mēs arī ierakstām pakotnes nosaukumu, kas ir “numpy”, un pēc tam viņa aizstājvārdu “np”. Pēc tam mēs izsaucam metodi print(), lai mēs varētu parādīt mazāko kvadrātu atkārtoto ziņojumu, lai labāk izprastu lietotāju.

Pēc tam mēs izveidojam masīva nosaukumu “x_axis” un saglabājam tajā masīvu, izmantojot funkciju arange (). Pēc tam mēs to izdrukājam, izmantojot print () metodi. Pēc tam mēs izveidojam citu masīva nosaukumu “y_axis” un saglabājam tajā masīvu, kuru izveidojām nākamajā attēlā.

Pēc abu masīvu izveides mēs ieviešam ones() metodi masīvā x_axis un saglabājam to citā masīvā ar nosaukumu “masīvs_a”. Un tad mēs arī izdrukājam šo masīvu. Mēs izveidojam citu masīvu ar nosaukumu “arg_reg_line” un ieviešam tajā funkciju linalg.lstsq(). Pēc tam mēs nododam parametrus šai funkcijai, lai mēs varētu iegūt vismazākos kvadrātus starp diviem masīviem vai punktiem. Pirmais parametrs ir tāds, ka mēs transponējam masīvu_a. Otrais parametrs ir otrais punkts, kas ir y_asis. Pēc tam mums ir “rcond”, kas satur vērtību “none”. Pēc tam mēs parādām masīvu, izmantojot metodi print ().

imports nejutīgs piem.

drukāt ( 'Funkcijas linalg.lstsq() ieviešana: ' )

x_ass = piem. sakārtot ( 0 , 10 )

drukāt ( ' \n X ass vērtības ir: ' , x_ass )

y_ass = [ 10.3 , 10.5 , vienpadsmit , 11.5 , 13.2 , 13.9 , 14 , 15.5 , 16.6 , 17 ]

drukāt ( ' \n Y ass vērtības ir: ' , y_ass )

masīvs_a = piem. masīvs ( [ x_ass , piem. vieni ( 10 ) ] )

drukāt ( ' \n Masīvs ir: \n ' , masīvs_a )

arg_reg_line = piem. linsēklas . lstsq ( masīvs_a. T , y_ass , rcond = Nav ) [ 0 ]

drukāt ( ' \n Regresijas līnijas parametri ir: ' , arg_reg_line )

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

imports matplotlib. pyplot plt

plt. sižetu ( x_ass , reg_line , 'r-' )

plt. sižetu ( x_ass , y_ass , 'O' )

plt. virsraksts ( 'Lineārā regresijas līnija' )

plt. xlabel ( 'X ass' )

plt. etiķete ( 'Y ass' )

plt. parādīt ( )

Šeit ir iepriekš ieviestā piemēra izvade:

Mēs importējam citu NumPy pakotni, kas ir “matplotlib” pakotne, ko izmanto grafika attēlošanai. Pēc tam mēs uzzīmējam x_ass vērtības un y_ass_vērtības. Tālāk mēs iestatām diagrammas nosaukumu un etiķetes. Visbeidzot, mēs parādām grafiku, izmantojot metodi show ().

Šeit ir dotā piemēra vēlamais grafiks:

Secinājums

Šajā rakstā mēs uzzinājām, kas ir mazākais kvadrāts un kā mēs iegūstam nezināmā mainīgā x linalg.lstsq(), izmantojot lineāro vienādojumu ax=b. Mēs izmantojām vairākas NumPy funkcijas, lai atrastu mazākos kvadrātus, un ieviesām dažus piemērus ar detalizētiem paskaidrojumiem, lai labāk izprastu lietotāju.