Mot slutten av denne opplæringen vil vi oppdage hvordan du utfører kurvebeslaget i Python og hvordan kurveinnredning bruker de optimaliserte parametrene i en funksjon som kartlegger inngangseksemplene til output. Men først, la oss bli kjent med det grunnleggende om curve_fit ().
Python scipy optimaliser kurvepasningsfunksjon brukt for?
Python Scipy Optimize Curve Fit-funksjonen er mye brukt for å oppnå de best tilpassede parametrene. Curve_Fit () -funksjonen er en optimaliseringsfunksjon som brukes til å finne det optimaliserte parametersettet for en angitt funksjon som perfekt passer til det medfølgende datasettet.
Kurvepassfunksjonen () -funksjonen i Scipy er et open source-bibliotek, brukt til å passe kurver ved bruk av ikke-lineære minstekvadrater. Som et argument tar Curve_Fit () de samme inndataene, utdataene og kartleggingsfunksjonsnavnet som skal brukes. Kartleggingsfunksjonen skal godta inngangsdataprøver så vel som et sett med parametere.
I motsetning til overvåket læring, trenger Curve Fit -funksjonen deg for å definere funksjonene som perfekt kartlegger inngangene i utgangene. Kartleggingsfunksjonen kan ganske enkelt være en rett linje som lineær regresjon eller en buet linje som en polynomisk regresjon, eller det kan være noe annet.
Syntaks av Python Scipy.optimalisere.Curve_Fit ()
Scipy Curve Fit () syntaks er gitt nedenfor.
# Scipy.optimalisere.Curve_Fit (F, X-Data, Y-Data, Sigma = Ingen, P0 = Ingen)Curve_Fit () tar noen nødvendige parametere og noen valgfrie parametere. 'F' er en modellfunksjon, f (a, ...). Det første argumentet det tar må være den uavhengige variabelen, og de gjenværende argumentene må være parametrene som passer.
'X-Data' -parameteren er en matrise-lignende parameter, som er en uavhengig variabel der dataene måles. 'Y-data' er en annen matrise-lignende parameter, som er en avhengig variabel også kjent som utgangen fra funksjonen.
'Sigma' er en valgfri parameter som bestemmer usikkerheten i 'Y-data'. Verdien av 'Sigma' kan være bare enkel 'ingen', 'm-lengde-sekvens eller' mxm array '. 'P0' -parameteren er en innledende gjetning for parametrene på N -lengde for parametrene. Det er en valgfri parameter, og hvis den ikke er gitt, vil startverdien være 1.
Curve_Fit () -funksjonen vil returnere de to verdiene; Popt og PCov. 'Popt' er en rekke som representerer de optimale verdiene for parametrene for å minimere summen av kvadratiske rester. Samtidig er 'PCOV' 2D -matrisen som representerer den estimerte samvariasjonen til 'Popt'.
Dessuten hever det de tre unntakene; Verdifeil, runtimefeil og optimalisering Advarsel. 'Verdifeil' blir kastet når enten X-Data eller Y-Data inneholder NANS, eller hvis noen inkompatibel metode blir brukt.
'Runtime -feilen' blir kastet når den minste firkantede minimeringen mislykkes. Og 'optimaliseringsvarsel' heves når samvariasjonen til parameteren ikke kan estimeres.
Eksempel 1:
I det første eksemplet vil vi tegne en rett linje som passer våre oppgitte data for å representere det lineære modelluttrykket. Etter å ha importert de nødvendige Python -bibliotekene, har vi brukt res2 = en*res1+to ligning for å lage et datasett på 30 poeng.
For å gjøre datasettet mer realistisk, har vi lagt til noe Gaussisk støy til RES2 -verdiene. Deretter brukte vi scipy.optimalisere.Kurvepasning () teknikk for å estimere verdiene til parametere 'One' og 'Two'. Her er den komplette programmeringskoden til modellen du kan følge.
Importer numpy som PNedenfor kan du finne resultatet av koden vedlagt ovenfor. De røde prikkene i den resulterende skjermen representerer datasettets virkelige datapunkter.
På den annen side er den lilla linjen kurven som er montert på datasettet ved å bruke scipy.optimalisere.Curve Fit () -metode. Dessuten gir det også den estimerte verdien av både parametere 'One' og 'Two', som også er beregnet av Scipy.optimalisere.Kurvepasning () teknikk.
Eksempel 2:
I det andre eksemplet vil vi forklare bruken av scipy.optimalisere.Curve_Fit () -metode for å plotte den eksponentielle kurven som passer våre data.
Her har vi brukt res2 = en*res2+en ligning for å lage et datasett med forskjellige punkter. Den gjenværende koden til programmet er den samme som eksemplet ovenfor. Her er koden for å plotte eksponentiell kurve med Curve_Fit () -funksjonen.
Importer numpy som PLa oss se utdataene.
Her kan du se den grafiske representasjonen.
Eksempel 3:
I det tredje eksemplet plotter vi de to kurvene samtidig rundt selve linjen for å se forskjellen mellom begge verdiene. Se koden nedenfor.
I koden har vi importert modulene og definert funksjonen (indikert som func_one). Etter det har vi satt verdiene og kalt Curve_Fit -funksjonen for å plotte disse verdiene på grafen.
Importer matplotlib.Pyplot som MTBUtgangen er under der du kan se de resulterende kurvene.
Konklusjon
I denne artikkelen har vi gitt deg alle detaljene om bruken av Cuver_fit () -funksjonen levert av Scipy. Vi har startet med introduksjonen av Curve_Fit () -funksjonen, og så har vi lært syntaks for Curve_Fit () -funksjonen. Etter det har vi sett noen nyttige eksempler på hvordan Curve_Fit () -funksjonen brukes til å plotte linjene og kurvene i Python. Du kan kjøre disse eksemplene på egen hånd for å se output selv og en bedre generell forståelse av hele konseptet.