Data Science Modeling: Kako uporabiti linearno regresijo s Python-om

Če pogledamo R², srednjo napako na kvadrat in še več

avtor Brian Henriquez, Chris Kazakis in Dean Sublett

Fotografija ustvarjalcev kampanje na Unsplash

Uvod in cilji

Linearna regresija je v znanosti s podatki zelo razširjena tehnika zaradi sorazmerne enostavnosti pri izvajanju in razlagi linearnega regresijskega modela.

V tej vadnici se bomo podali po preprostih in več linearnih regresijskih modelih nabora podatkov 80 Cereals z uporabo Pythona in obravnavali nekatere ustrezne regresijske metrike, vendar ne predvidevamo predhodnih izkušenj z linearno regresijo v Python-u. Nabor podatkov o 80 žitaricah najdete tukaj.

Tu je nekaj ciljev:

  • Razumevanje pomena in omejitev R²
  • Spoznajte meritve vrednotenja linearne regresije in kdaj jih uporabljati
  • Izvedite preprost in več linearni regresijski model s podatkovnim naborom 80 žit

Raziskovanje podatkov

Po prenosu nabora podatkov uvozite potrebne pakete Python in sam nabor podatkov o žitih:

Izhod iz žitne glave ()

Tu vidimo, da je vsaka vrsta blagovne znamke žit in vsak stolpec je prehranska (beljakovine, maščobe itd.) Ali identifikacijska značilnost (proizvajalec, vrsta) žita. Opazite, da je ocena odziv ali odvisna spremenljivka.

Nato smo ustvarili parno shemo korelacij med posameznimi značilnostmi nabora podatkov in iz te vizualizacije smo izbrali tri spremenljivke napovedovalca: kalorije, vlaknine in sladkorje. Načrt, ki prikazuje vsako korelacijo, je tukaj prevelik, da bi ga lahko delili, vendar si lahko podrobneje ogledamo parcelo z manjšimi pari, ki vključuje samo naše spremenljivke napovedovalca. S pomočjo seaborn.pairplot lahko vidimo tri raztresene ploskve z vgrajenimi najmanj kvadratnimi črtami:

Sešteva grafiko vsake spremenljivke napovedovalca z odzivno spremenljivko

Zdaj, ko smo bolj seznanjeni s podatki, lahko začnemo postavljati svoje modele linearne regresije.

Opomba: Zaradi enostavnega prenosa konceptov ne izračunamo vrednosti R² in prilagojenih vrednosti R² s pomočjo razdelitve podatkov preskusa / vlaka. Toda upoštevajte, da uporaba testnega / vlakovnega razkosa naključno izbranih opazovanj velja za najboljšo prakso in tako na koncu vadnice predstavljamo naše napake in AIC / BIC.

Linearni regresijski model

Želimo razpravljati o R² in njegovem pomenu za modele linearne regresije. Da pa natančno razumemo, kaj je R², moramo najprej razumeti, kaj je linearni model. Oglejmo si razpredelnico, ki primerja kalorije v porciji žita in njeno oceno:

Razsežnosti ocen in kalorij

Jasno vidimo, da obroki žitaric z več kalorijami na splošno dobijo slabše ocene. Če domnevamo, da obstaja nekaj razmerja med tema dvema spremenljivkama, potem lahko sestavimo model, ki napoveduje oceno žit glede na število kalorij.

Da preverimo, ali je razmerje v resnici linearno, lahko na grafu narišemo ostanke našega modela in poiščemo vzorce. Jasni vzorec v preostalem lahko nakazuje, da lahko drug model, na primer kvadratna ali logaritmika, bolje opiše odnos med obema spremenljivkama. Preverimo ostanke:

V ostankih ni jasnega vzorca, zato ni dokazov, da obstaja neprimerna enačba, ki se bolje prilega.

Za linearno regresijo nas bo zanimala formula:

x je spremenljivka napovednika za odzivno spremenljivko y

Za izdelavo modela lahko uporabimo metodo scipy lineregress.

In dobimo naslednji rezultat:

  • LinregressResult (nagib = -0.49701318979564285, prestrezi = 95.78802384439143, rvalue = -0.6893760311652586, pvalue = 4.1402774000064275e-12, stderr = 0.06030617024600228)

Prva postavka je b_1, druga je b_0, tretja vrednost pa je vrednost R, znana tudi kot korelacijski koeficient. Vrednost R se giblje od 1 do -1 in meri moč razmerja med pojasnjevalnimi spremenljivkami in spremenljivko odziva. Vrednost R za kalorije v primerjavi z oceno je -689, kar kaže, da obstaja močan negativen odnos med obema spremenljivkama. Kolikor dlje je vrednost R od 0, boljši je model pri predvidevanju vrednosti.

Z kvadratom R dobimo koeficient določitve, R². R² je vrednost, ki predstavlja, kolikšen odstotek variacije spremenljivke y je mogoče razložiti z variacijo spremenljivke x. Visoka vrednost R² kaže na močnejši model. Poglejmo nekaj vrednosti R² v našem naboru podatkov:

Natisnemo naslednje:

  • R² modela z napovednikom za pokal: 0,0412740112014871
  • R² modela z napovednikom kalorij: 0,4752393123451636

Te vrednosti R2 nam kažejo, da je kalorija boljši napovedovalec ocene kot skodelice.

Enostavna linearna regresija je uporabna, vendar pogosto želimo videti, kako lahko uporabimo več spremenljivk za napovedovanje ene spremenljivke. Naredimo dvodimenzionalni niz prediktorjev iz žit, tako da vzamemo rezino z vsemi našimi spremenljivkami zanimanja. kalorije, vlaknine in sladkor so bili dobri napovedovalci, ko smo prej pregledali načrt korelacijskih parov, zato si oglejmo model, ki uporablja te tri:

Dobimo naslednji izhod:

  • R²: 0,8483669504178866
  • R² prilagojeno: 0,8070124823500374

Ugotavljamo, da se je vrednost R² v modelu z eno spremenljivko (s kalorijami kot napovedovalec) povečala na .475, na .848. To kaže, da se je napovedna moč našega modela povečala.

Vendar dodamo slab model napovedovalca, skodelice, v ta model z več linearnimi regresijami in poglejmo, kaj se zgodi:

Ta koda daje naslednji izhod:

  • R²: 0,8490487016343364
  • R² prilagojeno: 0,788668182288071

Spomnimo, da se zdi, da število skodelic na porcijo žita skoraj ni povezano z oceno potrošnikov v posameznem primeru spremenljivke. Ko pa ga dodamo modelu, se celotni R² poveča na .849, kar pomeni, da je napovedna moč modela izboljšana. Vendar na podlagi tega, kar vemo, ta model s štirimi spremenljivkami ne sme biti nič boljši od modela s tremi spremenljivkami. Zaradi izračunavanja vrednosti R² bo dodajanje več spremenljivk v model vedno povečalo vrednost R². Torej moramo primerjati prilagojene vrednosti R², ki ublaži povečanje R² zaradi dodatnih spremenljivk. Formula za prilagojeni R² je

N-skupna velikost vzorca, p-število prediktorjev

S pomočjo tega ugotovimo, da ima model s tremi spremenljivkami prilagojen R² v vrednosti 0,807, medtem ko ima štiri spremenljiv model prilagojen R² v vrednosti 0,07. Zato je tri spremenljiv model boljši s to metriko.

R² je ena najpomembnejših meritev za ocenjevanje, kako se linearni model prilega podatkom, zato je treba intuitivno razumeti, kaj pomeni. Poznavanje omejitev R² in kako jih je mogoče omejiti, je prav tako pomembno pri izvajanju linearnih regresijskih modelov.

Srednja napaka v kvadratu (MSE)

Regresijski modeli imajo več različnih meritev ocenjevanja. Ena najbolj priljubljenih meritev, o kateri bomo najprej razpravljali, je srednja napaka v kvadratu (MSE).

Vir

MSE je ocenjevalna metrika, ki meri povprečje kvadratnih razlik med opaženimi in predvidenimi vrednostmi. Z drugimi besedami, MSE nam pove, kako natančen je ali netočen naš model linearne regresije - nižji je MSE, "boljši" je model pri napovedovanju vrednosti. Poiščimo MSE našega regresijskega modela:

Naša spremenljivka mse se vrne kot 26.6329.

Druga meritev za ocenjevanje, ki jo imamo na voljo, je napačna korenska napaka (RMSE), ki je preprosto kvadratni koren našega MSE. S funkcijo kvadratnega korena iz matematičnega modula Python se sqrt (mse) vrne kot 5.1607.

Pomembno je opozoriti, da ima naša vrednost RMSE enake enote kot spremenljivka odziva (vzeli smo kvadratni koren kvadratnih napak). Naša vrednost RMSE 5,1607 pade relativno nizko na območje 0–100 bonitetne spremenljivke, zato je naš model z več linearno regresijo »dober« pri napovedovanju ocene znamke žit. Obstajajo pa lahko tudi druge napake.

Srednja absolutna napaka (MAE)

Naslednja meritev ocene regresije, ki jo bomo upoštevali, je povprečna absolutna napaka (MAE).

Vir

Ker se MSE na kvadratne razlike razlikuje med ostanki, se večje razlike med dejanskimi in napovedanimi vrednostmi "kaznujejo" strožje kot MSE kot MAE. MSE je zaradi izraza v kvadratu bolj občutljiv za odpuščene, kot je MAE.

Če smo se odločili, da odstranjevalci v našem naboru podatkov niso pomembni pri analizi podatkov, se lahko obrnemo na MAE pred MSE, saj ostanki zunanjih ostankov ne bodo pretiravali z razvrščanjem ostankov. Poiščimo MAE:

Naša mae spremenljivka vrne 3.6153. Naš MAE je glede na območje ocenjevanja 0–100 razmeroma majhen, zato naš MAE kaže, da je naš model v svojih napovedih dokaj natančen.

Srednja absolutna napaka v odstotkih (MAPE)

Končna meritev ocene regresije, ki jo bomo upoštevali, je povprečni absolutni odstotek napake (MAPE).

Vir

MAPE daje natančnost napovednih modelov v odstotkih. Opazite podobnost v formulah MAE in MAPE. Tako kot MAE tudi na MAPE zelo ne vplivajo odporniki. Vendar pa MAPE uporabljajte previdno, ker

  • MAPE je nagnjen k delitvi na nič napak (glej imenovalec znotraj seštevka);
  • MAPE lahko raste zelo veliko, če so dejanske vrednosti zelo majhne (spet glejte delitev v delitvi);
  • MAPE je nagnjen k napovedim, ki so manjše od opazovanih vrednosti.

Poiščimo MAPE za naš model:

Naša funkcija MAPE vrne naslednji odstotek: 8.458%. Torej je naša napoved v povprečju "izklopljena" za približno 8,5%.

AIC in BIC

AIC (Akaike Information Criterion) in BIC (Bayesian Information Criterion) sta objektivni metodi za oceno vaših regresijskih modelov in določitev najboljše podvrsta prediktorjev (kateri model ustreza boljšemu).

Ko dodate parametre svojemu modelu, bo vedno ustrezal nekoliko bolje. Toda potem imate tveganje, da izgubite informacije o resničnem osnovnem vzorcu. Tako pride do nadomestitve med številom parametrov in količino napak, ki jih predstavlja vaš model. AIC in BIC ocenjujeta sposobnost modelov, da upoštevajo dodatne spremembe spremenljivke, ki jo napovedujete, vendar brez pretiranega prilagajanja modelu.

AIC

AIC vam omogoča, da ocenite količino izgubljene informacije v svojih modelih, tako da lahko primerjate, kateri modeli najbolje delujejo in izberete ustreznejšo podskupino napovedovalcev. Natančneje, vrednost AIC gleda na relativno razdaljo med resnično verjetnostno funkcijo podatkov in vgrajeno funkcijo verjetnosti vašega modela. Čim manjša je razdalja, toliko bližje je modelu resničnega predstavljanja vaših podatkov. AIC je označen s to formulo:

N-število opazovanj, K-število parametrov ustreza + 1

Če primerjamo prileganje dveh modelov po metodi AIC, ima model z nižjo vrednostjo AIC boljše prileganje.

Poiščimo vrednosti AIC naših dveh modelov večkratne regresije, ki smo jih uporabili prej. Eden ima tri napovedovalce, drugi pa štiri. Najprej bomo definirali vrednosti, ki jih bomo vključili v formulo, nato pa bomo zagnali formulo:

To daje naslednji izhod:

  • AIC modela s tremi napovedniki: 60.51438447233831
  • AIC modela s štirimi napovedniki: 62.31365180026097

Glede na to, kar vidimo, ima model s tremi prediktorji nižjo vrednost AIC in je zato bolj primeren kot model s štirimi napovedniki (vendar v tem primeru ne veliko).

BIC

BIC je podoben AIC, vendar je veliko strožji glede kaznovanja vašega modela za dodajanje dodatnih parametrov. Označen je s to formulo:

N-število opazovanj, K-število parametrov ustreza + 1

Če primerjamo prileganje dveh modelov po metodi BIC, ima model z nižjo vrednostjo BIC boljše prileganje, podobno kot postopek za metodo AIC.

Poiščimo BIC vrednosti za ista dva modela, ki sva jih ravnokar uporabila. Edina razlika je v tem, da kazen pomnožimo s številom parametrov na:

To daje naslednji izhod:

  • BIC modela s tremi napovedniki: 63.60473936129743
  • BIC modela s štirimi napovedniki: 66.17659541145987

Glede na to, kar vidimo tukaj, ima model s tremi napovedniki nižjo vrednost BIC in je tako bolj primeren kot model s štirimi napovedniki. Ker je kazen BIC strožja od kazni AIC, so vrednosti metode BIC za njihove modele večje od metode AIC.

Zaradi razlike v kazni lahko AIC izbere model z več parametri kot BIC. Priporočljivo je, da AIC in BIC uporabljate skupaj in odločite o svojih modelih na podlagi obeh nizov rezultatov. V tem primeru sta se AIC in BIC med seboj dogovorila in izbrala iste modele.

Ključni besednjak

Če povzamem, smo razpravljali

  • R²: indikator, kako močan model linearne regresije napoveduje odzivno spremenljivko
  • Prilagojeno R²: indikator, kako močan je model z več linearno regresijo, ki povzroči odstopanje odvisne spremenljivke, hkrati pa popravlja število parametrov v modelu
  • MSE (povprečna napaka v kvadraturi): ocenjevalna metrika, ki močno kaznuje odpuščene; verjetno prva napaka, ki jo boste izračunali in uporabili, ko so odbitki resnični pojav nabora podatkov
  • RMSE (osnovna napaka v kvadratku): kvadratni koren MSE; deli enake enote kot odzivno spremenljivko, zato je RMSE morda bolj »interpretativen« kot MSE
  • MAE (povprečna absolutna napaka): ocenjevalna metrika, ki se uporablja za zmanjšanje pomena outliersa pri merjenju napake; uporablja se, kadar outliers ne predstavljajo resničnega pojava nabora podatkov
  • MAPE (povprečni absolutni odstotek napake): merilo natančnosti regresijskega modela v odstotkih; nagnjeni k napakam med izvajanjem ali nenavadno velikih vrednosti, ko spremenljivka odziva prevzame majhne vrednosti
  • AIC (Akaike Information Criterion): ocena količine izgubljene informacije v različnih modelih, ki kaznuje za povečanje parametrov. Ne glede na velikost vaših podatkov ima vedno možnost, da izberete prevelik model. Najbolje se uporablja v povezavi z BIC.
  • BIC (Bayesovo merilo za informacije): podobno kot AIC, vendar se kaznuje močneje. Ne glede na velikost vaših podatkov ima vedno možnost, da izbere premajhen model. Najbolje se uporablja v povezavi z AIC.

Zaključek

V tej vadnici smo pokazali, kako izvajati preproste in večkratne linearne regresijske modele s Python-om in različne metode ocenjevanja teh modelov in njihove napake.

Ko delate z lastnimi nabori podatkov, lahko izberete katero koli od teh metod za oceno svojih regresijskih modelov in napake. Kljub temu pa vam je morda v interesu, da uporabite številne od teh in si ogledate, kako se njihovi rezultati poravnajo ali razlikujejo, da se odločite, kateri od vaših modelov ima najboljšo zastopanost vaših podatkov.

Zdaj bi morali biti bolj udobni pri izvajanju lastnih linearnih regresijskih modelov in se bolj zavedati podobnosti in razlik med vsemi obravnavanimi regresijskimi metrikami.