Terence Shin
30 decembrie 2019
·
5
min citit
Saptamana 5 din 52
Regresia liniara este una dintre cele mai utilizate abordari utilizate pentru modelarea relatiei dintre doua sau mai multe variabile. Poate fi aplicat oriunde, de la prognozarea vanzarilor pentru planificarea stocurilor pentru a determina impactul gazelor cu efect de sera asupra temperaturilor globale pana la prezicerea randamentului culturilor pe baza precipitatiilor.
In acest post, vom trece in revista ce este regresia liniara, cum functioneaza si vom crea un model de invatare automata pentru a prezice speranta medie de viata a unei persoane pe baza mai multor factori.
Conform Wikipedia, regresia liniara este o abordare liniara pentru modelarea relatiei dintre o variabila dependenta si una sau mai multe variabile independente. In termeni mai simpli, „linia cea mai potrivita” reprezinta un set de date.
Mai jos este un exemplu de linie care se potriveste cel mai bine punctelor de date. Prin crearea unei linii de potrivire optima, puteti prevedea unde ar putea fi punctele viitoare si puteti identifica valori aberante. De exemplu, sa presupunem ca acest grafic reprezinta pretul diamantelor in functie de greutate. Daca ne uitam la punctul rosu, putem vedea ca acest diamant special este supraevaluat, deoarece costa mult mai mult, avand in vedere aceeasi greutate ca si alte diamante. In mod similar, punctul verde este subevaluat deoarece costa mult mai putin decat alte diamante cu greutati similare.
Deci, cum gasiti linia cea mai potrivita? Sa aflam.
Ne vom concentra asupra regresiei liniare simple . Linia de potrivire cea mai buna sau ecuatia care reprezinta datele se gaseste prin minimizarea distantei patrate dintre puncte si linia de potrivire cea mai buna, numita si eroarea patrata .
Pentru a da un exemplu, exista doua „linii de potriviri optime” prezentate mai sus, linia rosie si linia verde. Observati cum eroarea (liniile verzi dintre linia cea mai potrivita si graficele) este mult mai mare decat linia rosie. Scopul regresiei este de a gasi o ecuatie in care suma erorilor sa fie redusa la minimum.
Daca doriti sa cunoasteti matematica din spatele ei, puteti viziona videoclipurile Academiei Khan aici, unde gasesc derivatele partiale ale lui m si b.
Daca doriti sa utilizati regresia liniara simpla, puteti utiliza clasa LinearRegression din biblioteca scikit-learn.
din importul sklearn.linear_model LinearRegression
Regresia liniara simpla este utila atunci cand doriti sa gasiti o ecuatie care reprezinta doua variabile, variabila independenta (x) si variabila dependenta (y). Dar daca aveti multe variabile independente? De exemplu, pretul unei masini se bazeaza probabil pe mai multi factori, cum ar fi puterea sa, dimensiunea masinii si valoarea marcii in sine.
Acesta este momentul in care intervine regresia multipla . Regresia multipla este utilizata pentru a explica relatia dintre o variabila dependenta si mai multe variabile independente.
argentina follada travestis dotadas
paginas videos porno gratis lesbianasx
porno español trios cinema gropers
hermanos españoles follando me corro en la boca de mama
porno jovencitas españolas trios gays
xxx orgias coñosxxx
halle berry desnuda corridas en la playa
peliculas eroticas alemanas mamada de rodillas
incesto x mature.com
parejas pilladas en la calle pajas de madres
porno peludas españolas pelis porno francesas
tetonas cubanas escenas porno en cine convencional
comicxxx porno chileno
madura tetona orgias familiares
corridas a chorro mía kalifa
viejas tetonas aventura en pelotas xxx
tetas puntiagudas argentina follada
porno de abuelas desnudas en la cocina
porno flash videdos porno
videos sexo gratis super tetudas
Imaginea de mai jos prezinta un grafic intre venit (y) si vechime si ani de educatie (x). Atunci cand exista doua variabile independente, se gaseste un plan de cea mai buna potrivire in locul unei linii de cea mai buna potrivire.
Ce se intampla daca ai avea un set de date in care linia sa de potrivire optima nu este liniara (cum ar fi imaginea de mai jos). Acesta este momentul in care ati dori sa utilizati regresia polinomiala . Folosind din nou Wikipedia, este definit ca o forma de analiza de regresie in care relatia dintre variabila independenta x si variabila dependenta y este modelata ca un polinom de gradul al X-lea in x. In termeni mai simpli, se potriveste unei relatii neliniare intre x si y.
Cand doriti sa utilizati regresia polinomiala, sunt necesare cateva linii suplimentare de cod:
din sklearn.preprocessing import
PolynomialFeatures poly_reg = PolynomialFeatures (grade = n) # unde n este egal cu numarul de grade pe care le doriti
Pentru a demonstra cum sa construiti un model de regresie in Python, am folosit setul de date „Speranta de viata (OMS) de pe Kaggle aici. Scopul meu a fost sa creez un model care sa poata prezice speranta medie de viata a unei persoane dintr-o anumita tara intr-un anumit an, pe baza unui numar de variabile. Retineti ca acesta este un model foarte de baza – urmatoarea mea postare va trece prin diferite metode pentru a imbunatati un model de regresie.
In ceea ce priveste pregatirea datelor, am urmat mai mult sau mai putin pasii pe care i-am prezentat in postarile mele de blog EDA.
Partea 1 aici.
Partea 2 aici.
Exista cateva subiecte noi pe care le-am introdus in acest model, cum ar fi convertirea datelor categorice (tari) in variabile fictive si evaluarea factorului de inflatie a variatiei (VIF) a tuturor variabilelor. Din nou, voi parcurge toate aceste subiecte noi in urmatoarea mea postare pe blog.
Un lucru pe care am vrut sa il impartasesc a fost corelatia harta, deoarece exista cateva corelatii cu adevarat interesante aici:
- Exista o puternica corelatie pozitiva intre „scolarizare” si „speranta de viata” de 0,73. Acest lucru se poate datora faptului ca educatia este mai stabilita si raspandita in tarile mai bogate. Aceasta inseamna tari cu mai putina coruptie, infrastructura, asistenta medicala, bunastare si asa mai departe.
- Similar punctului de mai sus, exista o corelatie pozitiva moderata intre „PIB” si „Speranta de viata” de 0,44, cel mai probabil din acelasi motiv.
- In mod surprinzator, exista o corelatie pozitiva moderata intre „alcool” si „speranta de viata” de 0,40. Presupun ca acest lucru se datoreaza faptului ca doar tarile mai bogate isi pot permite alcoolul sau consumul de alcool este mai raspandit in randul populatiilor mai bogate.
# Creati un model
din sklearn.model_selection import train_test_split
din sklearn.linear_model import LinearRegression
din sklearn.preprocessing import
PolynomialFeaturespoly_reg = PolynomialFeatures ( grade = 2) X_poly = poly_reg.fit_transform (X)
poly_reg, y_t_t, y_test = train_test_split (X_poly, y, test_size = .30, random_state = 0)
regressor = LinearRegression ()
regressor.fit (X_train, y_train)
y_pred = regressor.predict (X_test)
Dupa curatarea datelor, am executat codul de mai sus pentru a-mi crea modelul de regresie multipla polinomiala cu un MAE de 8.22 si un interval de 44.4. In urmatoarea mea postare pe blog, voi introduce de fapt mai multe metode de imbunatatire a unui model de regresie (aplicabil si la majoritatea modelelor de invatare automata) folosind acelasi set de date pe care l-am folosit aici.
Sarbatori fericite! 🙂








