Andmeteaduse modelleerimine: kuidas kasutada lineaarset regressiooni Pythoni abil

Vaadates R², Mean Squared Error ja palju muud

autorid Brian Henriquez, Chris Kazakis ja Dean Sublett

Foto kampaania loojad saidil Unsplash

Sissejuhatus ja eesmärgid

Lineaarne regressioon on andmeteaduses laialt kasutatav tehnika, kuna lineaarse regressioonimudeli rakendamine ja tõlgendamine on suhteliselt lihtne.

See õpetus tutvub Pythonit kasutava 80 teravilja andmestiku lihtsate ja mitmete lineaarsete regressioonimudelitega ning arutab mõnda asjakohast regressioonimõõdikut, kuid me ei eelda eelnevat kogemust lineaarse regressiooniga Pythonis. 80 teravilja andmestiku leiate siit.

Siin on mõned eesmärgid:

  • Mõista R2 tähendust ja piiranguid
  • Siit leiate teavet lineaarse regressiooni hindamismõõdikute ja nende kasutamise kohta
  • Rakendage 80 teravilja andmestikuga lihtne ja mitmekordne lineaarne regressioonimudel

Andmete uurimine

Pärast andmestiku allalaadimist importige vajalikud Pythoni paketid ja teravilja andmestik ise:

Väljund teraviljapeast ()

Siin näeme, et iga rida on teravilja bränd ja iga veerg on teravilja toitumisalane (valk, rasv jne) või identifitseeriv omadus (tootja, tüüp). Pange tähele, et hinnang on vastus või sõltuv muutuja.

Järgmisena koostasime andmestiku iga tunnuse vahelise korrelatsioonide paarisdiagrammi ja sellest visualiseerimisest valisime välja kolm ennustavat muutujat: kalorid, kiudained ja suhkrud. Iga korrelatsiooni kuvav graafik on siin jagamiseks liiga suur, kuid võime lähemalt uurida väiksemate paaride graafikut, mis sisaldab ainult meie ennustatavaid muutujaid. Seaborn.pairploti kasutades näeme kolme hajutatud graafikut, millele on paigaldatud vähimruutude jooned:

Iga ennustaja muutuja paariline graafik vastuse muutujaga

Nüüd, kui oleme andmetega tuttavamad, võime hakata oma lineaarse regressiooni mudeleid üles seadma.

Märkus. Mõistete hõlpsa edastamise huvides ei arvuta me R² ja korrigeeritud R² väärtusi, kasutades andmete testi / rongi jaotust. Kuid võtke arvesse, et juhuslikult valitud vaatluste testi / rongijaotuse kasutamist peetakse parimaks tavaks ja nii tutvustame õpetuse lõpus oma vigu ja AIC / BIC-d.

Lineaarse regressiooni mudel

Tahame arutada R2 ja selle olulisust lineaarse regressiooni mudelites. Kuid selleks, et mõista täpselt, mis on R2, peame kõigepealt mõistma, mis on lineaarne mudel. Vaatame hajutatud diagrammi, milles võrreldakse teravilja portsjoni kaloreid ja selle hinnangut:

Hinnangute ja kalorite hajutatus

Näeme selgelt, et rohkema kalorsusega teravilja portsjonid saavad üldjuhul halvema ülevaate. Kui eeldame, et nende kahe muutuja vahel on mingi seos, siis saame luua mudeli, mis ennustab teravilja reitingut kalorite arvu põhjal.

Et kontrollida, kas suhe on tegelikult lineaarne, saame meie mudeli jäägid graafikule joonistada ja otsida mustreid. Jäägi selge muster võib viidata sellele, et mõni teine ​​mudel, näiteks ruut- või logaritmiline, võib paremini kirjeldada kahe muutuja suhet. Kontrollime jääke:

Jääkides pole selget mustrit, seega pole mingeid tõendeid selle kohta, et oleks olemas paremini paigaldatav mittelineaarne võrrand.

Lineaarse regressiooni jaoks on meid huvitav valem:

x on reageerimismuutuja y ennustaja muutuja

Mudeli valmistamiseks võime kasutada skipy linregress meetodit.

Ja saame järgmise väljundi:

  • LinregressResult (kalle = -0.49701318979564285, pealtkuulamine = 95.78802384439143, rvalue = -0.6893760311652586, pvalue = 4,1402774000064275e-12, stderr = 0,06030617024600228)

Esimene element on b_1, teine ​​on b_0 ja kolmas väärtus on R väärtus, mida nimetatakse ka korrelatsioonikordajaks. R väärtus on vahemikus 1 kuni -1 ja mõõdab selgitavate muutujate ja reageerimismuutuja vahelise seose tugevust. Kalorite R väärtus versus reiting on -689, mis näitab, et kahe muutuja vahel on tugev negatiivne seos. Mida kaugemal R väärtus on 0-st, seda parem on mudel väärtuste ennustamisel.

R korrutades saame määramiskoefitsiendi R². R² on väärtus, mis tähistab protsenti, mis protsentides muutuja y variatsioonist on seletatav muutuja x muutujaga. Kõrge R2 väärtus näitab tugevamat mudelit. Vaatame mõnda meie andmestiku R2 väärtust:

Trükime järgmist:

  • Cupi ennustajaga mudeli R²: 0,0412740112014871
  • Kalori ennustajaga mudeli R²: 0,4752393123451636

Need R² väärtused näitavad meile, et kalorid ennustavad paremat reitingut kui tassid.

Lihtne lineaarne regressioon on kasulik, kuid sageli tahame teada, kuidas saab ühe muutuja ennustamiseks kasutada mitut muutujat. Saame teraviljast kahemõõtmelise ennustajate massiivi, võttes sellest viilu koos kõigi meie huvipakkuvate muutujatega. kalorid, kiudained ja suhkur näisid olevat head ennustajad, kui vaatasime korrelatsioonipaaride graafikut varem läbi, vaatame siis mudelit, milles kasutatakse neid kolme:

Saame järgmise väljundi:

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

Leiame, et R² väärtus on ühe muutuja mudeli korral tõusnud (475) (prognoosijaks kalorid) väärtuseni 0,848. See näib osutavat, et meie mudeli ennustav jõud on suurenenud.

Lisage sellele mitmekordse lineaarse regressioonimudeli jaoks halb ennustaja, tassid ja vaadake, mis juhtub:

See kood annab järgmise väljundi:

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

Tuletame meelde, et tasside arv ühe teraviljaportfelli kohta näib ühel muutuval juhul olevat peaaegu mingit seost tarbija reitinguga. Kuid kui me selle mudelile lisame, suureneb üldine R² väärtuseni 849, mis tähendab, et mudeli ennustusjõud on paranenud. Kuid selle põhjal, mida me teame, ei tohiks see nelja muutujaga mudel olla parem kui kolme muutujaga mudel. R² väärtuse arvutamise viisi suurendab mudelile rohkemate muutujate lisamine R² väärtust. Seega peame võrdlema korrigeeritud R² väärtusi, mis leevendab R² suurenemist täiendavate muutujate tõttu. Reguleeritud R² valem on

N-koguvalimi suurus, ennustajate p-arv

Selle abil leiame, et kolme muutujaga mudeli korrigeeritud R2 on 0,807, samas kui nelja muutujaga mudeli kohandatud R2 on 0,788. Seetõttu on kolme muutujaga mudel selle mõõdiku järgi parem.

R² on üks olulisemaid mõõdikuid, et hinnata, kas lineaarne mudel sobib andmetega, seega on oluline omada intuitiivset arusaamist selle tähendusest. Lineaarsete regressioonimudelite rakendamisel on võrdselt oluline teada ka R2 piiranguid ja seda, kuidas neid piiranguid leevendada.

Keskmine ruutviga (MSE)

Regressioonimudelitel on mitmeid erinevaid hindamismõõdikuid. Üks populaarsemaid mõõdikuid ja mida arutame kõigepealt, on ruutkeskmine viga (MSE).

Allikas

MSE on hindamismõõdik, mis mõõdab vaadeldud ja ennustatud väärtuste ruutkeskmiste erinevuste keskmist. Teisisõnu, MSE ütleb meile, kui täpne või ebatäpne on meie lineaarse regressiooni mudel - mida madalam on MSE, seda parem on mudel väärtuste ennustamisel. Leidkem meie regressioonimudeli MSE:

Meie muutuv mse naaseb väärtusena 26.6329.

Teine meie käsutuses olev hindamismõõdik on ruutkeskmine viga (RMSE), mis on lihtsalt meie MSE ruutjuur. Kasutades ruutjuure funktsiooni Pythoni matemaatikamoodulist, saab sqrt (mse) väärtusena 5.1607.

Oluline on märkida, et meie RMSE väärtus jagab vastuse muutujaga samu ühikuid (võtsime ruutude vigade ruutjuure). Meie RMSE väärtus 5,1607 langeb suhteliselt madalale reitingu muutuja vahemikus 0–100, seega on meie mitmekordse lineaarse regressioonimudeli abil hea ennustada teraviljamargi reitingut. Kuid on ka muid vigu, mida võime kasutada.

Keskmine absoluutne viga (MAE)

Järgmine regressioonihindamise mõõdik, mida me arvestame, on keskmine absoluutne viga (MAE).

Allikas

Kuna MSE ruudutab jääkide erinevuse, karistatakse MSE-d karmimalt tegelike ja prognoositud väärtuste suuremate erinevuste eest kui MAE. Ruututud terminite tõttu on MSE tundlikum kõrvalnähtude suhtes kui MAE.

Kui otsustaksime, et meie andmestikus olevad kõrvalnähud ei olnud andmete analüüsimisel olulised, võime pöörduda enne MSE poole MAE poole, kuna kõrvalnäitajate jäägid ei jääks liialdatuks jääkide ruutude jagamisel. Leidkem MAE:

Meie mae muutuja tagastab 3.6153. Meie MAE on suhteliselt väike, arvestades reitinguvahemikku 0–100, seega näitab MAE, et meie mudel on oma ennustustes mõistlikult täpne.

Keskmine absoluutprotsendi viga (MAPE)

Viimane regressioonihindamise mõõdik, mida me arvestame, on keskmine absoluutprotsendi viga (MAPE).

Allikas

MAPE annab ennustavate mudelite täpsuse protsentides. Pange tähele sarnasust MAE ja MAPE valemites. Nagu MAE, ei mõjuta MAPE ka kõrvalnähtusi suuresti. Kasutage MAPE'i siiski ettevaatlikult, kuna

  • MAPE jaguneb nullveaga (vt nimetajat summeerimisel);
  • MAPE võib kasvada väga suureks, kui tegelikud väärtused on väga väikesed (vaata uuesti jagamise toimingut summeerimisest);
  • MAPE on kallutatud vaadeldud väärtustest väiksemate ennustuste suunas.

Leidkem meie mudeli MAPE:

Meie funktsioon MAPE tagastab järgmise protsendi: 8,458%. Seega on meie prognoos keskmiselt umbes 8,5% vaba.

AIC ja BIC

AIC (Akaike teabe kriteerium) ja BIC (Bayesi teabe kriteerium) on objektiivsed meetodid teie regressioonimudelite hindamiseks ja ennustajate parima alamhulga määramiseks (milline mudel sobib paremini).

Kui lisate oma mudelile parameetreid, sobib see alati natuke paremini. Kuid siis on teil oht kaotada teave tegeliku alusmustri kohta. Seega on teie mudeli parameetrite arvu ja veamäära vahel kompromiss. AIC ja BIC hindavad mudelite võimet arvestada prognoositava muutuja täiendavate variatsioonidega, ilma et mudelit üle sobitataks.

AIC

AIC võimaldab teil hinnata oma mudelitesse kaotatud teabe hulka, nii et saate võrrelda, millised mudelid kõige paremini töötavad, ja valida ennustajate jaoks sobivama alamhulga. Täpsemalt, AIC väärtus vaatab andmete tegeliku tõenäosusfunktsiooni ja teie mudeli kohandatud tõenäosusfunktsiooni vahelist suhtelist kaugust. Mida väiksem see vahemaa, seda lähemal on mudel teie andmete tegelikule esindatusele. AIC-d tähistatakse järgmise valemiga:

Vaatluste N-arv, parameetrite K-arv sobib + 1

Kui võrrelda kahe mudeli sobivust AIC-meetodi abil, siis sobib madalama AIC-väärtusega mudel paremini.

Leidkem meie kahe varem kasutatud regressioonimudeli AIC-väärtused. Ühel on kolm ennustajat ja teisel neli. Esmalt määratleme väärtused, mille ühendame valemiga, ja seejärel käivitame valemi:

See annab järgmise väljundi:

  • Kolme ennustajaga mudeli AIC: 60.51438447233831
  • Nelja ennustajaga mudeli AIC: 62.31365180026097

Nagu näeme, on kolme ennustajaga mudelil madalam AIC väärtus ja seega sobib see paremini kui nelja ennustajaga mudel (kuid mitte palju selles näites).

BIC

BIC on sarnane AIC-ga, kuid see on palju rangem selles mõttes, et teie mudelit karistatakse lisaparameetrite lisamise eest. Seda tähistatakse järgmise valemiga:

Vaatluste N-arv, parameetrite K-arv sobib + 1

Kui võrrelda kahe mudeli sobivust BIC-meetodi abil, siis sobib madalama BIC-väärtusega mudel paremini, sarnaselt AIC-meetodi korral kasutatavaga.

Leidame sama kahe mudeli, mida me just kasutasime, BIC-väärtused. Ainus erinevus on karistus, mille me korrutame parameetrite arvuga:

See annab järgmise väljundi:

  • Kolme ennustajaga mudeli BIC: 63.60473936129743
  • Nelja ennustajaga mudeli BIC: 66.17659541145987

Siin nähtu põhjal on kolme ennustajaga mudelil madalam BIC-väärtus ja seega sobib see paremini kui nelja ennustajaga mudel. Kuna BIC-i karistus on AIC-i karistusest rangem, on BIC-meetodi väärtused suuremad kui nende vastavate mudelite AIC-meetodil.

Karistuste erinevuse tõttu saab AIC valida mudeli, millel on rohkem parameetreid kui BIC. Soovitatav on kasutada AIC-d ja BIC-i koos ning otsustada oma mudelite üle mõlema tulemuse põhjal. Sel juhul leppisid AIC ja BIC omavahel kokku ja valisid samad mudelid.

Põhisõnavara

Kokkuvõtteks arutasime

  • R²: indikaator selle kohta, kui tugev lineaarse regressioonimudeliga reageerimismuutuja ennustatakse
  • Kohandatud R²: indikaator selle kohta, kui tugev mitme lineaarse regressioonimudeliga arvestatakse sõltuvuse muutuja dispersiooni, korrigeerides samal ajal mudeli parameetrite arvu
  • MSE (keskmine ruutviga): hindamismõõdik, mis karistab suuresti kõrvalekaldeid; tõenäoliselt esimene viga, mille arvutate ja mida kasutate, kui kõrvalnähud esindavad andmekogumi tõelist nähtust
  • RMSE (ruutkeskmine viga): MSE ruutjuur; jagab samu ühikuid vastuse muutujaga, nii et RMSE võib olla „tõlgendatav” kui MSE
  • MAE (keskmine absoluutne viga): hindamismõõdik, mida kasutatakse kõrvalekallete olulisuse vähendamiseks vea mõõtmisel; kasutatakse juhul, kui kõrvalnähud ei kajasta andmekogumi tõelist nähtust
  • MAPE (keskmine absoluutne veaprotsent): regressioonimudeli täpsuse mõõt protsentides; kalduvus käitustõrgetele või ebaharilikult suurtele väärtustele, kui vastuse muutuja võtab väikeseid väärtusi
  • AIC (Akaike teabe kriteerium): eri mudelites kaotatud teabe hulga hinnang, mis karistab parameetrite suurenemise eest. Sõltumata teie andmete suurusest, on tal alati võimalus valida mudeli jaoks liiga suur. Parim kasutada koos BIC-iga.
  • BIC (Bayesi teabe kriteerium): sarnane AIC-ga, kuid karistab tugevamalt. Sõltumata teie andmete suurusest, on tal alati võimalus valida mudeli jaoks liiga väike. Parim kasutada koos AIC-ga.

Järeldus

Selles õpetuses näitasime, kuidas Pythoni abil rakendada lihtsaid ja mitut lineaarset regressioonimudelit ning nende mudelite ja nende vea hindamise erinevaid meetodeid.

Enda andmekogudega töötades võite valida, kas regressioonimudelite ja vigade hindamiseks kasutatakse mõnda neist meetoditest. Siiski võib teie huvides olla kasutada mõnda neist ja vaadata, kuidas nende tulemused joonduvad või erinevad, et otsustada, milline teie mudelitest teie andmeid kõige paremini kajastab.

Nüüd peaksite oma lineaarsete regressioonimudelite rakendamist paremini tundma ja teadlikumalt olema kõigi käsitletud regressioonimõõdikute sarnasused ja erinevused.