NumPy Minste kvadrater

Numpy Minste Kvadrater



I dag skal vi lære om minste kvadrater i lineære ligninger og hvordan implementere minste kvadratmetoden for best tilpasning for regresjonslinjen i de angitte datasettene. Men før det, la oss få den grunnleggende kunnskapen om NumPy. NumPy er en av de beste matematiske pakkene til Python som tilbyr tjenester for flerdimensjonale matriser og matriser sammen med et bredt spekter av komplekse numeriske operasjoner som kan utføres på disse matrisene/matrisene.

En av metodene til Python lstsq() brukes til å finne regresjonslinjen til den kjente lineære ligningen ax=b som passer best med denne ligningen. Dette betyr at du må bestemme linjen som riktig viser forholdet mellom x- og y-punktene hvis dataene dine indikerer at det er en. Linjen mellom begge punktene er kjent som en regresjonslinje når den brukes til å finne minste kvadrat gjennom denne ligningen, ax=b.

Syntaks:

La oss begynne å lære implementeringsstilen til linalg.lstsq()-funksjonen. Først skriver vi biblioteknavnet som vi bruker i Python som er 'numpy'. Deretter setter vi sammen linalg()-funksjonen og sammenkobler lstsq()-funksjonen. Linalg()-funksjonen betyr lineær algebra. Den brukes alltid med funksjonen lstsq() fordi den er et lineært algebraisk uttrykk. Etter dette sender vi argumentene i funksjonsparentesene.









Parametere:

La oss forstå parametrene til linalg.lstsq()-funksjonen:



punkt 1: Det er koeffisientmatrisen.





punkt 2: Denne matrisen eller matrisen inneholder avhengige variabler.

rcond: Datatypen til den er flytende. rcond-forholdet fungerer som et grensesnitt for mindre entallsverdier for punkt_1. Hvis en entallsverdi er mindre enn rcond ganger det største entallselementet til punkt_1, anses den som null når rangeringen skal bestemmes.



Returverdi:

Til gjengjeld får vi minste kvadrat av kjent variabel x i ligningen ax=b.

Eksempel 1:

La oss begynne å implementere vårt første eksempel på en minste kvadratisk metode for Python-biblioteket, NumPy. Først trenger vi en Python-kompilator slik at vi kan kode i den. Åpne kompilatoren. Du må også installere NumPy-biblioteket fordi vi bruker en av funksjonene til NumPy som er lstsq()-funksjonen. Deretter må du importere NumPy-pakken i den. Skriv først nøkkelordet 'import' som forteller kompilatoren at vi skal importere pakken. Deretter må vi skrive pakkenavnet som vi bruker i funksjonen som er 'numpy'. Og så skriver vi også det alternative navnet på NumPy 'np' fordi mange programmerere bruker denne tilnærmingen. Dette er en god programmeringstilnærming, og det sparer tid.

Etter å ha importert pakken, begynner vi å skrive selve kodelinjen som vi ønsker å gjøre. Vi skriver ut meldingene først slik at brukeren enkelt kan forstå hva vi gjør i eksemplet ved å bruke print()-setningen. Vi lager den endimensjonale matrisen 'A' ved å bruke array()-funksjonen og skriver den deretter ut ved å kalle print()-setningen. Deretter lager vi en annen endimensjonal matrise 'B' ved å bruke array()-funksjonen og skriver den ut ved å bruke print()-funksjonen.

import nusset som f.eks.

skrive ut ( 'Implementering av minste kvadratmetode i NumPy: ' )

EN = f.eks. array ( [ 1 , to , 1 , 1 , 1 , to , to , 1 , 1 ] )

skrive ut ( ' \n Array A er: ' , EN )

B = f.eks. array ( [ 4 , 3 , 5 , 4 , to , 3 , 6 , 3 , to ] )

skrive ut ( ' \n Array B er: ' , B )

X = f.eks. linalg . lstsq ( f.eks. vstack ( [ EN , f.eks. seg ( bare ( EN ) ) ] ) . T , B , rcond = Ingen ) [ 0 ]

skrive ut ( ' \n The Least Square er: ' , X )

Etter opprettelsen av både punkt A og B implementerer vi funksjonen lstsq(). Men først bruker vi vstack()-funksjonen til å stable elementene til 'A', sekvensmessig. Deretter tar vi transponering av array 'A'. Deretter sender vi vstack()-funksjonen som det første argumentet til lstsq()-funksjonen. Det andre argumentet er 'B'-matrisen og det tredje argumentet er 'rcond' der vi setter verdien av rcond som 'ingen'. Deretter lagrer vi hele funksjonen i en annen matrise kalt 'x' som viser at det er den kjente variable lineære ligningen, ax=b. Etter dette viser vi resultatene, så vi bruker print()-setningen for dette og sender 'x'-matrisen i den.

Eksempel 2:

La oss nå begynne å implementere et annet eksempel på NumPy minste kvadrater. Vi importerer alltid biblioteket først som vi bruker i programmet som er NumPy. Først skriver vi nøkkelordet 'import' for å få pakken i programmet. Vi skriver også pakkenavnet som er 'numpy' og deretter hans alias, 'np'. Deretter kaller vi print()-metoden slik at vi kan vise den retable meldingen for minste kvadrater for en bedre forståelse av brukeren.

Deretter lager vi matrisenavnet 'x_axis' og lagrer matrisen i den ved å bruke funksjonen arange(). Deretter skriver vi det ut ved å bruke print()-metoden. Deretter lager vi et annet matrisenavn 'y_axis' og lagrer matrisen i den som vi opprettet i følgende illustrasjon.

Etter å ha opprettet begge matrisene, implementerer vi ones()-metoden på x_axis-matrisen og lagrer den i en annen matrise kalt 'array_a'. Og så skriver vi også ut denne matrisen. Vi lager en annen matrise kalt 'arg_reg_line' og implementerer en linalg.lstsq() funksjon på den. Deretter sender vi parametrene til denne funksjonen slik at vi kan få de minste kvadratene mellom to matriser eller punkter. Den første parameteren er at vi tar transponeringen av array_a. Den andre parameteren er det andre punktet som er y_aksen. Deretter har vi 'rcond' som inneholder 'ingen'-verdien. Vi viser deretter matrisen ved å bruke print()-metoden.

import nusset som f.eks.

skrive ut ( 'Implementering av linalg.lstsq()-funksjonen: ' )

x_akse = f.eks. ordne ( 0 , 10 )

skrive ut ( ' \n Verdien av x-aksen er: ' , x_akse )

y_akse = [ 10.3 , 10.5 , elleve , 11.5 , 13.2 , 13.9 , 14 , 15.5 , 16.6 , 17 ]

skrive ut ( ' \n Verdien av y-aksen er: ' , y_akse )

array_a = f.eks. array ( [ x_akse , f.eks. seg ( 10 ) ] )

skrive ut ( ' \n Arrayen er: \n ' , array_a )

arg_reg_linje = f.eks. linalg . lstsq ( array_a. T , y_akse , rcond = Ingen ) [ 0 ]

skrive ut ( ' \n Parametrene til regrsjonslinjen er: ' , arg_reg_linje )

reg_linje = arg_reg_linje [ 0 ] * x_akse + arg_reg_linje [ 1 ]

import matplotlib. pyplot som plt

plt. plott ( x_akse , reg_linje , 'r-' )

plt. plott ( x_akse , y_akse , 'O' )

plt. tittel ( 'Lineær regresjonslinje' )

plt. xlabel ( 'X-akse' )

plt. ylabel ( 'Y-akse' )

plt. forestilling ( )

Her er resultatet av det tidligere implementerte eksemplet:

Vi importerer en annen pakke med NumPy som er 'matplotlib'-pakken som brukes til å plotte grafen. Deretter plotter vi x_axis-verdiene og y_axis_values. Deretter setter vi tittelen og etikettene til grafen. Til slutt viser vi grafen ved å bruke show()-metoden.

Her er den ønskede grafen for det gitte eksemplet:

Konklusjon

I denne artikkelen lærte vi hva som er minste kvadrat og hvordan vi får linalg.lstsq() til den ukjente variabelen x ved å bruke den lineære ligningen ax=b. Vi brukte flere funksjoner til NumPy for å finne de minste kvadratene og implementerte noen eksempler med detaljerte forklaringer for en bedre forståelse av brukeren.