Antal minsta kvadrater

Antal Minsta Kvadrater



Idag ska vi lära oss om minsta kvadrater i linjära ekvationer och hur man implementerar minsta kvadratmetoden för bästa passform för regressionslinjen i de tillhandahållna datamängderna. Men innan det, låt oss få den grundläggande kunskapen om NumPy. NumPy är ett av de bästa matematiska paketen av Python som tillhandahåller tjänster för flerdimensionella matriser och matriser tillsammans med ett brett utbud av komplexa numeriska operationer som kan utföras på dessa matriser/matriser.

En av metoderna för Python lstsq() används för att hitta den regressionslinje för den kända linjära ekvationen ax=b som bäst passar med denna ekvation. Det betyder att du måste bestämma linjen som korrekt visar förhållandet mellan x- och y-punkterna om dina data indikerar att det finns en. Linjen mellan båda punkterna är känd som en regressionslinje när den används för att hitta minsta kvadraten genom denna ekvation, ax=b.

Syntax:

Låt oss börja lära oss implementeringsstilen för linalg.lstsq()-funktionen. Först skriver vi biblioteksnamnet som vi använder i Python som är 'numpy'. Sedan sammanfogar vi linalg()-funktionen och sammanfogar funktionen lstsq(). Funktionen linalg() betyder linjär algebra. Det används alltid med funktionen lstsq() eftersom det är ett linjärt algebraiskt uttryck. Efter detta skickar vi argumenten inom funktionsparenteserna.









Parametrar:

Låt oss förstå parametrarna för funktionen linalg.lstsq():



punkt 1: Det är koefficientmatrisen.





punkt 2: Denna matris eller matris innehåller beroende variabler.

rcond: Datatypen för den är flytande. rcond-förhållandet fungerar som en cut-off för mindre singularvärden för point_1. Om ett singularvärde är mindre än rcond gånger det största singularelementet i punkt_1, anses det vara noll när rangordningen bestäms.



Returvärde:

I gengäld får vi minsta kvadraten av kända variabel x i ekvationen ax=b.

Exempel 1:

Låt oss börja implementera vårt första exempel på en minsta kvadratmetod för Python-biblioteket, NumPy. Först behöver vi en Python-kompilator så att vi kan koda i den. Öppna kompilatorn. Du måste också installera NumPy-biblioteket eftersom vi använder en av funktionerna i NumPy som är lstsq()-funktionen. Sedan måste du importera NumPy-paketet i det. Skriv först nyckelordet 'import' som talar om för kompilatorn att vi ska importera paketet. Sedan måste vi skriva paketnamnet som vi använder i funktionen som är 'numpy'. Och sedan skriver vi också det alternativa namnet på NumPy 'np' eftersom många programmerare använder detta tillvägagångssätt. Detta är ett bra programmeringssätt och det sparar tid.

Efter att ha importerat paketet börjar vi skriva själva kodraden som vi vill göra. Vi skriver ut meddelandena först så att användaren enkelt kan förstå vad vi gör i exemplet med hjälp av print()-satsen. Vi skapar den endimensionella arrayen 'A' med hjälp av array()-funktionen och skriver sedan ut den genom att anropa print()-satsen. Sedan skapar vi en annan endimensionell array 'B' med hjälp av array()-funktionen och skriver ut den med funktionen print().

importera numpy som t.ex.

skriva ut ( 'Implementering av minsta kvadratmetod i NumPy: ' )

A = t.ex. array ( [ 1 , två , 1 , 1 , 1 , två , två , 1 , 1 ] )

skriva ut ( ' \n Array A är: ' , A )

B = t.ex. array ( [ 4 , 3 , 5 , 4 , två , 3 , 6 , 3 , två ] )

skriva ut ( ' \n Array B är: ' , B )

X = t.ex. linfrö . lstsq ( t.ex. vstack ( [ A , t.ex. ettor ( endast ( A ) ) ] ) . T , B , rcond = Ingen ) [ 0 ]

skriva ut ( ' \n Minsta torget är: ' , X )

Efter skapandet av både punkt A och B implementerar vi funktionen lstsq(). Men först använder vi vstack()-funktionen för att stapla elementen i 'A', sekvensmässigt. Sedan tar vi transponeringen av array 'A'. Sedan skickar vi funktionen vstack() som det första argumentet för funktionen lstsq(). Det andra argumentet är 'B'-matrisen och det tredje argumentet är 'rcond' där vi ställer in värdet på rcond som 'ingen'. Sedan lagrar vi hela funktionen i en annan array som heter 'x' som visar att det är den kända variabeln linjära ekvationen, ax=b. Efter detta visar vi resultaten så vi använder print()-satsen för detta och skickar 'x'-matrisen i den.

Exempel 2:

Låt oss nu börja implementera ett annat exempel på NumPy minsta kvadrater. Vi importerar alltid biblioteket först som vi använder i programmet som är NumPy. Först skriver vi nyckelordet 'importera' för att få paketet i programmet. Vi skriver också paketnamnet som är 'numpy' och sedan hans alias, 'np'. Sedan anropar vi metoden print() så att vi kan visa det retable meddelandet för de minsta kvadraterna för en bättre förståelse för användaren.

Sedan skapar vi arraynamnet 'x_axis' och lagrar arrayen i den med funktionen arange(). Sedan skriver vi ut det med metoden print(). Sedan skapar vi ett annat arraynamn 'y_axis' och lagrar arrayen i den som vi skapade i följande illustration.

Efter att ha skapat båda arrayerna implementerar vi metoden ones() på arrayen x_axis och lagrar den i en annan array som heter 'array_a'. Och sedan skriver vi också ut denna array. Vi skapar en annan array som heter 'arg_reg_line' och implementerar en linalg.lstsq() funktion på den. Sedan skickar vi parametrarna till denna funktion så att vi kan få minsta kvadrater mellan två arrayer eller punkter. Den första parametern är att vi tar transponeringen av array_a. Den andra parametern är den andra punkten som är y_axeln. Sedan har vi 'rcond' som innehåller värdet 'ingen'. Vi visar sedan arrayen med metoden print().

importera numpy som t.ex.

skriva ut ( 'Implementering av linalg.lstsq() funktion: ' )

x_axel = t.ex. ordna ( 0 , 10 )

skriva ut ( ' \n Värdet på x-axeln är: ' , x_axel )

y_axel = [ 10.3 , 10.5 , elva , 11.5 , 13.2 , 13.9 , 14 , 15.5 , 16.6 , 17 ]

skriva ut ( ' \n Värdet på y-axeln är: ' , y_axel )

array_a = t.ex. array ( [ x_axel , t.ex. ettor ( 10 ) ] )

skriva ut ( ' \n Arrayen är: \n ' , array_a )

arg_reg_line = t.ex. linfrö . lstsq ( array_a. T , y_axel , rcond = Ingen ) [ 0 ]

skriva ut ( ' \n Parametrarna för Regrssion Line är: ' , arg_reg_line )

reg_linje = arg_reg_line [ 0 ] * x_axel + arg_reg_linje [ 1 ]

importera matplotlib. pyplot som plt

plt. komplott ( x_axel , reg_linje , 'r-' )

plt. komplott ( x_axel , y_axel , 'O' )

plt. titel ( 'Linjär regressionslinje' )

plt. xlabel ( 'X-axel' )

plt. ylabel ( 'Y-axel' )

plt. show ( )

Här är resultatet av det tidigare implementerade exemplet:

Vi importerar ett annat paket med NumPy som är 'matplotlib'-paketet som används för att plotta grafen. Sedan plottar vi x_axis-värdena och y_axis_values. Därefter ställer vi in ​​grafens titel och etiketter. Slutligen visar vi grafen med metoden show().

Här är den önskade grafen för det givna exemplet:

Slutsats

I den här artikeln lärde vi oss vad som är minsta kvadraten och hur vi får linalg.lstsq() för den okända variabeln x med den linjära ekvationen ax=b. Vi använde flera funktioner i NumPy för att hitta minsta kvadrater och implementerade några exempel med detaljerade förklaringar för en bättre förståelse av användaren.