Antal mindste kvadrater

Antal Mindste Kvadrater



I dag skal vi lære om de mindste kvadrater i lineære ligninger, og hvordan man implementerer den mindste kvadratmetode for den bedste tilpasning til regressionslinjen i de medfølgende datasæt. Men før det, lad os få den grundlæggende viden om NumPy. NumPy er en af ​​de bedste matematiske pakker af Python, der leverer tjenester til multidimensionelle arrays og matricer sammen med en lang række komplekse numeriske operationer, der kan udføres på disse matricer/arrays.

En af metoderne i Python lstsq() bruges til at finde den regressionslinje for den kendte lineære ligning ax=b, der passer bedst med denne ligning. Det betyder, at du skal bestemme den linje, der korrekt viser forholdet mellem x- og y-punkterne, hvis dine data indikerer, at der er et. Linjen mellem begge punkter er kendt som en regressionslinje, når den bruges til at finde det mindste kvadrat gennem denne ligning, ax=b.

Syntaks:

Lad os begynde at lære implementeringsstilen for linalg.lstsq()-funktionen. Først skriver vi biblioteksnavnet, som vi bruger i Python, som er 'numpy'. Derefter sammenkæder vi linalg()-funktionen og sammenkæder lstsq()-funktionen. Linalg()-funktionen betyder lineær algebra. Det bruges altid sammen med funktionen lstsq(), fordi det er et lineært algebraisk udtryk. Herefter sender vi argumenterne i funktionsparenteserne.









Parametre:

Lad os forstå parametrene for funktionen linalg.lstsq():



punkt 1: Det er koefficientmatrixen.





punkt 2: Denne matrix eller matrix indeholder afhængige variable.

rcond: Datatypen for den er float. rcond-forholdet fungerer som en cut-off for mindre entalsværdier for point_1. Hvis en singularværdi er mindre end rcond gange det største singularelement i point_1, betragtes den som nul, når rangordenen bestemmes.



Returneringsværdi:

Til gengæld får vi mindste kvadrat af kendt variabel x i ligningen ax=b.

Eksempel 1:

Lad os begynde at implementere vores første eksempel på en mindste kvadratisk metode i Python-biblioteket, NumPy. Først skal vi have en Python-compiler, så vi kan kode i den. Åbn compileren. Du skal også installere NumPy-biblioteket, fordi vi bruger en af ​​funktionerne i NumPy, som er lstsq()-funktionen. Derefter skal du importere NumPy-pakken i den. Skriv først nøgleordet 'import', som fortæller compileren, at vi skal importere pakken. Derefter skal vi skrive pakkenavnet, som vi bruger i funktionen, som er 'numpy'. Og så skriver vi også det alternative navn på NumPy 'np', fordi mange programmører bruger denne tilgang. Dette er en god programmeringstilgang, og det sparer tid.

Efter import af pakken begynder vi at skrive den faktiske kodelinje, som vi vil gøre. Vi udskriver beskederne først, så brugeren nemt kan forstå, hvad vi gør i eksemplet ved hjælp af print()-sætningen. Vi opretter det endimensionelle array 'A' ved hjælp af array()-funktionen og udskriver det derefter ved at kalde print()-sætningen. Derefter opretter vi et andet endimensionelt array 'B' ved hjælp af array()-funktionen og udskriver det ved hjælp af print()-funktionen.

importere nusset som for eksempel.

Print ( 'Implementering af mindste kvadratmetoden i NumPy: ' )

EN = for eksempel. array ( [ 1 , to , 1 , 1 , 1 , to , to , 1 , 1 ] )

Print ( ' \n Array A er: ' , EN )

B = for eksempel. array ( [ 4 , 3 , 5 , 4 , to , 3 , 6 , 3 , to ] )

Print ( ' \n Array B er: ' , B )

x = for eksempel. linfrø . lstsq ( for eksempel. vstack ( [ EN , for eksempel. dem ( kun ( EN ) ) ] ) . T , B , rcond = Ingen ) [ 0 ]

Print ( ' \n Den mindste firkant er: ' , x )

Efter oprettelsen af ​​både punkt A og B implementerer vi lstsq()-funktionen. Men først bruger vi funktionen vstack() til at stable elementerne i 'A', sekvensmæssigt. Derefter tager vi transponering af array 'A'. Derefter sender vi vstack()-funktionen som det første argument i lstsq()-funktionen. Det andet argument er 'B'-arrayet, og det tredje argument er 'rcond', hvor vi sætter værdien af ​​rcond som 'ingen'. Derefter gemmer vi hele funktionen i et andet array ved navn 'x', som viser, at det er den kendte variabel lineære ligning, ax=b. Efter dette viser vi resultaterne, så vi bruger print()-sætningen til dette og sender 'x'-arrayet i det.

Eksempel 2:

Lad os nu begynde at implementere et andet eksempel på NumPy mindste kvadrater. Vi importerer altid først biblioteket, som vi bruger i programmet, som er NumPy. Først skriver vi nøgleordet 'import' for at få pakken i programmet. Vi skriver også pakkenavnet, som er 'numpy' og derefter hans alias, 'np'. Derefter kalder vi print()-metoden, så vi kan vise den retable-meddelelse for de mindste kvadrater for en bedre forståelse af brugeren.

Derefter opretter vi arraynavnet 'x_axis' og gemmer arrayet i det ved hjælp af funktionen arange(). Derefter udskriver vi det ved hjælp af print() metoden. Derefter opretter vi et andet arraynavn 'y_axis' og gemmer arrayet i det, som vi oprettede i den følgende illustration.

Efter at have oprettet begge arrays implementerer vi metoden ones() på x_axis-arrayet og gemmer det i et andet array ved navn 'array_a'. Og så udskriver vi også dette array. Vi opretter et andet array ved navn 'arg_reg_line' og implementerer en linalg.lstsq() funktion på det. Derefter sender vi parametrene til denne funktion, så vi kan få de mindste kvadrater mellem to arrays eller punkter. Den første parameter er, at vi tager transponeringen af ​​array_a. Den anden parameter er det andet punkt, som er y_aksen. Så har vi 'rcond', som indeholder 'ingen' værdien. Vi viser derefter arrayet ved hjælp af print() metoden.

importere nusset som for eksempel.

Print ( 'Implementering af linalg.lstsq() funktion: ' )

x_akse = for eksempel. arrangere ( 0 , 10 )

Print ( ' \n Værdien af ​​x-aksen er: ' , x_akse )

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

Print ( ' \n Værdien af ​​y-aksen er: ' , y_akse )

array_a = for eksempel. array ( [ x_akse , for eksempel. dem ( 10 ) ] )

Print ( ' \n Arrayet er: \n ' , array_a )

arg_reg_linje = for eksempel. linfrø . lstsq ( array_a. T , y_akse , rcond = Ingen ) [ 0 ]

Print ( ' \n Parametrene for regrssionslinjen er: ' , arg_reg_linje )

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

importere matplotlib. pyplot som plt

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

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

plt. titel ( 'Lineær regressionslinje' )

plt. xlabel ( 'X-akse' )

plt. ylabel ( 'Y-akse' )

plt. at vise ( )

Her er resultatet af det tidligere implementerede eksempel:

Vi importerer en anden pakke med NumPy, som er 'matplotlib'-pakken, som bruges til at plotte grafen. Derefter plotter vi x_axis værdierne og y_axis_values. Dernæst sætter vi grafens titel og etiketter. Til sidst viser vi grafen ved hjælp af metoden show().

Her er den ønskede graf for det givne eksempel:

Konklusion

I denne artikel lærte vi, hvad der er mindste kvadrat, og hvordan vi får linalg.lstsq() af den ukendte variabel x ved hjælp af den lineære ligning ax=b. Vi brugte flere funktioner i NumPy til at finde de mindste kvadrater og implementerede nogle eksempler med detaljerede forklaringer for en bedre forståelse af brugeren.