NumPy nejmenších čtverců

Numpy Nejmensich Ctvercu



Dnes se naučíme o nejmenších čtvercích v lineárních rovnicích a jak implementovat metodu nejmenších čtverců pro co nejlepší přizpůsobení regresní přímce v poskytnutých souborech dat. Ale předtím se podívejme na základní znalosti NumPy. NumPy je jeden z nejlepších matematických balíčků Pythonu, který poskytuje služby pro vícerozměrná pole a matice spolu se širokou škálou složitých numerických operací, které lze s těmito maticemi/polemi provádět.

Jedna z metod Pythonu lstsq() se používá k nalezení regresní přímky známé lineární rovnice ax=b, která nejlépe odpovídá této rovnici. To znamená, že musíte určit čáru, která správně ukazuje vztah mezi body x a y, pokud vaše data naznačují, že nějaký existuje. Přímka mezi oběma body je známá jako regresní přímka, když se používá k nalezení nejmenšího čtverce v této rovnici, ax=b.

Syntax:

Začněme se učit implementační styl funkce linalg.lstsq(). Nejprve napíšeme jméno knihovny, kterou používáme v Pythonu, což je „numpy“. Poté zřetězíme funkci linalg() a zřetězíme funkci lstsq(). Funkce linalg() znamená lineární algebru. Vždy se používá s funkcí lstsq(), protože jde o lineární algebraický výraz. Poté předáme argumenty v závorkách funkcí.









Parametry:

Pojďme pochopit parametry funkce linalg.lstsq():



bod 1: Je to matice koeficientů.





bod 2: Tato matice nebo pole obsahuje závislé proměnné.

rcond: Jeho datový typ je float. Poměr rcond slouží jako mezní hodnota pro menší singulární hodnoty bodu_1. Pokud je singulární hodnota menší než druhý krát největší singulární prvek bodu 1, považuje se při určování pořadí za nulu.



Návratová hodnota:

Na oplátku dostaneme nejmenší čtverec známé proměnné x v rovnici ax=b.

Příklad 1:

Začněme implementovat náš první příklad metody nejmenších čtverců knihovny Python, NumPy. Nejprve potřebujeme překladač Pythonu, abychom v něm mohli kódovat. Otevřete kompilátor. Musíte také nainstalovat knihovnu NumPy, protože používáme jednu z funkcí NumPy, kterou je funkce lstsq(). Poté do něj musíte importovat balíček NumPy. Nejprve napište klíčové slovo „import“, které sdělí kompilátoru, že budeme balíček importovat. Poté musíme napsat název balíčku, který používáme ve funkci, která je „numpy“. A pak také napíšeme alternativní název NumPy „np“, protože tento přístup používá mnoho programátorů. To je dobrý přístup k programování a šetří čas.

Po importu balíčku začneme psát skutečný řádek kódu, který chceme udělat. Zprávy nejprve vytiskneme, aby uživatel snadno pochopil, co v příkladu děláme pomocí příkazu print(). Jednorozměrné pole „A“ vytvoříme pomocí funkce array() a poté jej vytiskneme voláním příkazu print(). Poté vytvoříme další jednorozměrné pole „B“ pomocí funkce array() a vytiskneme jej pomocí funkce print().

import nemotorný tak jako např.

tisk ( 'Implementace metody nejmenších čtverců v NumPy: ' )

A = např. pole ( [ 1 , dva , 1 , 1 , 1 , dva , dva , 1 , 1 ] )

tisk ( ' \n Pole A je: ' , A )

B = např. pole ( [ 4 , 3 , 5 , 4 , dva , 3 , 6 , 3 , dva ] )

tisk ( ' \n Pole B je: ' , B )

X = např. lněné semínko . lstsq ( např. vstack ( [ A , např. jedničky ( jen ( A ) ) ] ) . T , B , rcond = Žádný ) [ 0 ]

tisk ( ' \n Nejmenší náměstí je: ' , X )

Po vytvoření obou bodů A i B implementujeme funkci lstsq(). Nejprve však použijeme funkci vstack() ke skládání prvků „A“ sekvenčně. Poté provedeme transpozici pole „A“. Poté předáme funkci vstack() jako první argument funkce lstsq(). Druhý argument je pole „B“ a třetí argument je „rcond“, ve kterém nastavíme hodnotu rcond jako „none“. Poté celou funkci uložíme do dalšího pole s názvem „x“, což ukazuje, že se jedná o známou lineární rovnici proměnné, ax=b. Poté zobrazíme výsledky, takže k tomu použijeme příkaz print() a předáme do něj pole „x“.

Příklad 2:

Nyní začněme implementovat další příklad nejmenších čtverců NumPy. Vždy nejprve importujeme knihovnu, kterou používáme v programu NumPy. Nejprve napíšeme klíčové slovo „import“, aby se balíček dostal do programu. Zapíšeme také název balíčku, který je „numpy“ a poté jeho alias „np“. Poté zavoláme metodu print(), abychom mohli zobrazit zprávu o nejmenších čtvercích pro lepší pochopení uživatele.

Poté vytvoříme název pole „osa_x“ a pole do něj uložíme pomocí funkce arange(). Poté jej vytiskneme pomocí metody print(). Poté vytvoříme další název pole „y_axis“ a uložíme do něj pole, které jsme vytvořili na následujícím obrázku.

Po vytvoření obou polí implementujeme metodu ones() na pole x_axis a uložíme ji do jiného pole s názvem „array_a“. A pak toto pole také vytiskneme. Vytvoříme další pole s názvem „arg_reg_line“ a implementujeme do něj funkci linalg.lstsq(). Poté této funkci předáme parametry, abychom získali nejmenší čtverce mezi dvěma poli nebo body. První parametr je, že provedeme transpozici pole_a. Druhý parametr je druhý bod, kterým je osa y. Pak máme „rcond“, který obsahuje hodnotu „none“. Pole pak zobrazíme pomocí metody print().

import nemotorný tak jako např.

tisk ( 'Implementace funkce linalg.lstsq(): ' )

osa x = např. zařídit ( 0 , 10 )

tisk ( ' \n Hodnota osy x je: ' , osa x )

osa y = [ 10.3 , 10.5 , jedenáct , 11.5 , 13.2 , 13.9 , 14 , 15.5 , 16.6 , 17 ]

tisk ( ' \n Hodnota osy y je: ' , osa y )

pole_a = např. pole ( [ osa x , např. jedničky ( 10 ) ] )

tisk ( ' \n Pole je: \n ' , pole_a )

arg_reg_line = např. lněné semínko . lstsq ( pole_a. T , osa y , rcond = Žádný ) [ 0 ]

tisk ( ' \n Parametry regresní čáry jsou: ' , arg_reg_line )

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

import matplotlib. pyplot tak jako plt

plt. spiknutí ( osa x , reg_line , 'r-' )

plt. spiknutí ( osa x , osa y , 'Ó' )

plt. titul ( 'Lineární regresní čára' )

plt. xlabel ( 'osa X' )

plt. ylabel ( 'osa Y' )

plt. ukázat ( )

Zde je výstup dříve implementovaného příkladu:

Importujeme další balíček NumPy, což je balíček „matplotlib“, který se používá k vykreslení grafu. Poté vykreslíme hodnoty osy x a hodnoty osy y. Dále nastavíme název a popisky grafu. Nakonec graf zobrazíme pomocí metody show().

Zde je požadovaný graf daného příkladu:

Závěr

V tomto článku jsme se dozvěděli, co je nejmenší čtverec a jak získáme linalg.lstsq() neznámé proměnné x pomocí lineární rovnice ax=b. Použili jsme několik funkcí NumPy k nalezení nejmenších čtverců a implementovali jsme několik příkladů s podrobným vysvětlením pro lepší pochopení uživatele.