- View
Šta ako su vaši podaci zapravo složeniji od jednostavne prave linije? Iznenađujuće, zapravo možete koristiti linearni model da biste se uklopili u nelinearne podatke. Jednostavan način da to uradite je da dodate ovlašćenja svake funkcije kao nove funkcije, a zatim trenirate linearni model na ovom proširenom skupu funkcija. Ova tehnika se zove polinomijalna regresija.
Polinomijalna regresija je regresijski algoritam koji modelira odnos između zavisne (i) i nezavisne varijable (k) kao n-tog stepena polinoma. Jednačina polinomske regresije je data u nastavku:
$$y= \beta_0+β_1x_1^1+ β_2x_1^2+ β_3x_1^3+...... β_nx_1^n$$
Takođe se naziva posebnim slučajem višestruke linearne regresije u ML. Zato što dodajemo neke polinomske termine u višestruku linearnu regresijsku jednačinu da bismo je pretvorili u polinomnu regresiju.
To je linearni model sa nekim modifikacijama kako bi se povećala tačnost.
Skup podataka koji se koristi u polinomskoj regresiji za obuku je nelinearne prirode.
Koristi linearni regresijski model kako bi se uklopio u komplikovane i nelinearne funkcije i skupove podataka.
Dakle, "U polinomijalnoj regresiji, originalne karakteristike se pretvaraju u polinomne karakteristike potrebnog stepena (2,3,..,n), a zatim se modeliraju pomoću linearnog modela."
Potreba polinomske regresije u ML može se razumeti u sledećim tačkama:
- Ako primenimo linearni model na linearni skup podataka, onda nam daje dobar rezultat kao što smo videli u jednostavnoj linearnoj regresiji, ali ako primenjujemo isti model bez ikakvih modifikacija na nelinearnom skupu podataka, onda će proizvesti drastičan izlaz. Zbog čega će se funkcija gubitka povećati, stopa grešaka će biti visoka, a tačnost će se smanjiti.
- Dakle, za takve slučajeve, gde su tačke podataka raspoređene na nelinearan način, potreban nam je model polinomske regresije. Možemo ga razumeti na bolji način koristeći dijagram poređenja ispod linearnog skupa podataka i nelinearnog skupa podataka.

- Na gornjoj slici uzeli smo skup podataka koji je raspoređen nelinearno. Dakle, ako pokušamo da ga pokrijemo linearnim modelom, onda možemo jasno videti da jedva pokriva bilo koju tačku podataka. S druge strane, kriva je pogodna da pokrije većinu tačaka podataka, što je polinomijalni model.
- Stoga, ako su skupovi podataka raspoređeni na nelinearan način, onda bi trebalo da koristimo model polinomske regresije umesto jednostavne linearne regresije.
Napomena: Algoritam polinomne regresije se takođe naziva polinomna linearna regresija jer ne zavisi od varijabli, već zavisi od koeficijenata, koji su raspoređeni linearno.
| Jednostavna linearna regresijska jednačina |
\(y= β_0+β_1x_1\) |
| Višestruka linearna regresijska jednačina |
\(y= β_0+β_1x_1 + β_2x_2 + +...... β_nx_n\) |
| Polinomijalna regresijska jednačina | \(y= β_0+β_1x_1^1 + β_2x_1^2 +...... β_nx_1^n\) |
Implementacija polinomske regresije pomoću Pithona:
Ovde ćemo implementirati polinomsku regresiju koristeći Pithon. Mi ćemo to razumeti upoređivanjem modela polinomske regresije sa modelom jednostavne linearne regresije. Dakle, prvo, hajde da shvatimo problem za koji ćemo izgraditi model.
Opis problema: Postoji kompanija za ljudske resurse, koja će zaposliti novog kandidata. Kandidat je rekao svoju prethodnu platu 160K godišnje, a HR mora da proveri da li govori istinu ili blefira. Dakle, da bi to identifikovali, oni imaju samo skup podataka njegove prethodne kompanije u kojoj se pominju plate prvih 10 pozicija sa njihovim nivoima. Proverom dostupnog skupa podataka, otkrili smo da postoji nelinearna veza između nivoa pozicije i plata. Naš cilj je da izgradimo model regresije detektora blefiranja, tako da HR može zaposliti poštenog kandidata. U nastavku su navedeni koraci za izgradnju takvog modela.

Koraci za polinomijalnu regresiju:
Glavni koraci uključeni u polinomijalnu regresiju su dati u nastavku:
- Predobrada podataka
- Izgradite model linearne regresije i uklopite ga u skup podataka
- Izgradite model polinomske regresije i prilagodite ga skupu podataka
- Vizuelizujte rezultat za model linearne regresije i polinomne regresije.
- Predviđanje izlaza.
Korak pre-obrade podataka:
Korak predobrade podataka će ostati isti kao u prethodnim regresijskim modelima, osim nekih promena. U modelu polinomske regresije nećemo koristiti skaliranje funkcija, a takođe nećemo podeliti naš skup podataka u skup za obuku i testiranje. Ima dva razloga:
- Skup podataka sadrži vrlo manje informacija koje nisu pogodne za podelu u skup testova i obuke, inače naš model neće moći da pronađe korelacije između plata i nivoa.
- U ovom modelu želimo vrlo precizna predviđanja za platu, tako da model treba da ima dovoljno informacija.
Kod po korak pre obrade je dat u nastavku:
# importing libraries
import numpy as nm
import matplotlib.pyplot as mtp
import pandas as pd
#importing datasets
data_set= pd.read_csv('Position_Salaries.csv')
#Extracting Independent and dependent Variable
x= data_set.iloc[:, 1:2].values
y= data_set.iloc[:, 2].values
Kreiranje linearnog regresijskog modela:
Sada ćemo izgraditi i uklopiti model linearne regresije u skup podataka. U izgradnji polinomske regresije, uzećemo model linearne regresije kao referencu i uporediti oba rezultata. Kod je dat ispod:




