Datu zinātnes modelēšana: kā izmantot lineāro regresiju ar Python

Apskatot R², vidējo kvadrātu kļūdu un daudz ko citu

Autori ir Braiens Henriquez, Chris Kazakis un Dean Sublett

Kampaņas veidotāju fotoattēls vietnē Unsplash

Ievads un mērķi

Lineārā regresija ir datu zinātnē plaši izmantota tehnika, jo lineāras regresijas modeļa ieviešana un interpretācija ir relatīvi vienkārša.

Šajā apmācībā tiks apskatīti vienkāršie un daudzkārtējie 80 labības datu kopas lineārās regresijas modeļi, izmantojot Python, un tiks aplūkoti daži attiecīgie regresijas rādītāji, taču mēs neuzņemamies iepriekšēju pieredzi ar lineāro regresiju Python. 80 labības datu kopa atrodama šeit.

Šeit ir daži mērķi:

  • Izprast R2 nozīmi un ierobežojumus
  • Uzziniet par lineārās regresijas novērtēšanas rādītājiem un to izmantošanas laiku
  • Ieviesiet vienkāršu un daudzkārtīgu lineārās regresijas modeli ar 80 labības datu kopu

Datu izpēte

Pēc datu kopas lejupielādes importējiet nepieciešamās Python paketes un pašu labības datu kopu:

Produkcija no graudaugu galviņas ()

Šeit mēs redzam, ka katra rinda ir graudaugu zīmols, un katra kolonna ir labības uzturvērtība (olbaltumvielas, tauki utt.) Vai identifikācijas pazīme (ražotājs, tips). Ievērojiet, ka vērtējums ir reakcija vai atkarīgs mainīgais.

Tālāk mēs izveidojām korelāciju pāru diagrammu starp katrai datu kopas pazīmei, un no šīs vizualizācijas mēs izvēlējāmies trīs prognozējamos mainīgos: kalorijas, šķiedrvielas un cukurus. Diagramma, kurā parādīta katra korelācija, ir pārāk liela, lai šeit koplietotu, taču mēs varam tuvāk apskatīt mazāku pāru grafiku, kurā iekļauti tikai mūsu paredzamie mainīgie. Izmantojot vietni seaborn.pairplot, mēs varam redzēt trīs izkliedes grafikus ar uzstādītām vismazāko kvadrātu līnijām:

Katra prognozētāja mainīgā lieluma pāri ar reakcijas mainīgo

Tagad, kad esam labāk iepazinušies ar datiem, mēs varam sākt iestatīt savus lineārās regresijas modeļus.

Piezīme. Lai jēdzienus varētu viegli pārnest, mēs neaprēķinām R² un koriģētās R² vērtības, izmantojot datu testa / vilciena sadalījumu. Bet, lūdzu, ņemiet vērā, ka nejauši izvēlētu novērojumu testa / vilciena dalījuma izmantošana tiek uzskatīta par labāko praksi, un šādi mēs apmācības beigās uzrādām mūsu kļūdas un AIC / BIC.

Lineārās regresijas modelis

Mēs vēlamies apspriest R2 un tā nozīmi lineārās regresijas modeļos. Bet, lai precīzi saprastu, kas ir R2, vispirms jāsaprot, kas ir lineārais modelis. Apskatīsim izkliedes diagrammu, salīdzinot kalorijas graudaugu porcijā un tās vērtējumu:

Novērtējuma un kaloriju izkliedes diagramma

Mēs skaidri redzam, ka graudaugu porcijas ar vairāk kalorijām parasti saņem sliktākas atsauksmes. Ja pieņemsim, ka starp šiem diviem mainīgajiem pastāv zināma saistība, mēs varam izveidot modeli, kas paredz labības vērtējumu, pamatojoties uz kaloriju skaitu.

Lai pārbaudītu, vai attiecības patiesībā ir lineāras, mēs grafikā varam iezīmēt mūsu modeļa atlikumus un meklēt modeļus. Skaidrs atlikuma modelis var liecināt par to, ka cits modelis, piemēram, kvadrātiskais vai logaritmiskais, var labāk raksturot attiecības starp abiem mainīgajiem. Pārbaudīsim atlikumus:

Pārpalikumiem nav skaidra modeļa, tāpēc nav pierādījumu, ka būtu labāks, nelineārs vienādojums.

Par lineāro regresiju mūs interesēs formula:

x ir reakcijas mainīgā y prognozējamais mainīgais

Lai izveidotu modeli, mēs varam izmantot skipy linregress metodi.

Un mēs iegūstam šādu rezultātu:

  • LinregressResult (slīpums = -0.49701318979564285, pārtveršana = 95.78802384439143, rvalue = -0.6893760311652586, pvalue = 4,1402774000064275e-12, stderr = 0,06030617024600228)

Pirmais vienums ir b_1, otrais ir b_0, un trešā vērtība ir R vērtība, ko sauc arī par korelācijas koeficientu. R vērtība svārstās no 1 līdz -1 un mēra sakarības stiprumu starp skaidrojošajiem mainīgajiem un atbildes mainīgo. Kaloriju R vērtība, salīdzinot ar vērtējumu, ir -689, kas parāda, ka starp abiem mainīgajiem ir spēcīga negatīva saistība. Jo tālāk R vērtība ir no 0, jo labāk modelis prognozē vērtības.

Sadalot R, iegūstam noteikšanas koeficientu R². R² ir vērtība, kas apzīmē, cik procentus no y mainīgā variācijas var izskaidrot ar variācijām x mainīgajā. Augsta R² vērtība norāda uz spēcīgāku modeli. Apskatīsim dažas R² vērtības mūsu datu kopā:

Mēs izdrukājam šādus datus:

  • R² modeļa ar kausa pareģotāju: 0.0412740112014871
  • R² modeļa ar paredzamo kaloriju daudzumu: 0.4752393123451636

Šīs R² vērtības mums norāda, ka kalorijas ir labāks reitinga prognozētājs nekā tases.

Vienkārša lineārā regresija ir noderīga, taču bieži mēs vēlamies uzzināt, kā vairākus mainīgos var izmantot, lai paredzētu vienu mainīgo. Saņemsim no graudaugiem paredzētu 2D matricu, paņemot no tās šķēli ar visu mūsu interesējošo mainīgo. kalorijas, šķiedrvielas un cukurs šķita labs pareģotājs, kad iepriekš pārskatījām korelācijas pāru grafiku, tāpēc apskatīsim modeli, izmantojot šos trīs:

Mēs iegūstam šādu rezultātu:

  • R²: 0,8483669504178866
  • R² pielāgots: 0,8070124823500374

Mēs atklājam, ka R² vērtība ir palielinājusies no 0,475 viena mainīgā modelī (ar kaloriju kā prognozētāju) līdz 0,848. Šķiet, ka tas norāda, ka mūsu modeļa paredzamā jauda ir palielinājusies.

Tomēr šim daudzkārtējās lineārās regresijas modelim pievienosim sliktu prognozētāju - krūzes - un redzēsim, kas notiek:

Šis kods dod šādu izvadi:

  • R²: 0,8490487016343364
  • R² koriģēts: 0.788668182288071

Atgādiniet, ka kausu skaitam uz vienu graudaugu porciju šķita, ka gandrīz vienāds ar patērētāju vērtējumu vienā mainīgajā gadījumā. Bet, kad mēs to pievienojam modelim, kopējais R² palielinās līdz .849, kas nozīmē, ka modeļa paredzamā jauda ir uzlabojusies. Tomēr, pamatojoties uz to, ko mēs zinām, šim četru mainīgo modelim nevajadzētu būt labākam par trīs mainīgo modeli. Pēc tā, kā tiek aprēķināta R² vērtība, pievienojot modelim vairāk mainīgo lielumu, R² vērtība vienmēr palielināsies. Tātad mums jāsalīdzina koriģētās R² vērtības, kas mazina R² palielināšanos papildu mainīgo dēļ. Pielāgotā R2 formula ir:

N-kopējais parauga lielums, pareģotāju p-skaits

Izmantojot šo, mēs secinām, ka trīs mainīgo modelim ir koriģēts R² 0,807, savukārt četru mainīgo modelim ir pielāgots R² 0,788. Tāpēc trīsdaļīgais modelis ir labāks par šo rādītāju.

R² ir viens no vissvarīgākajiem rādītājiem, lai novērtētu, cik lineārs modelis der datiem, tāpēc ir svarīgi intuitīvi saprast, ko tas nozīmē. Realizējot lineārās regresijas modeļus, vienlīdz svarīgi ir zināt R2 ierobežojumus un to, kā šos ierobežojumus mazināt.

Vidējā kvadrāta kļūda (MSE)

Regresijas modeļiem ir virkne dažādu novērtēšanas rādītāju. Viena no vispopulārākajām metrikām un vispirms apspriedīsim kļūdu vidējā kvadrātā (MSE).

Avots

MSE ir novērtēšanas metrika, kas mēra vidējo kvadrāta starpību starp novērotajām un prognozētajām vērtībām. Citiem vārdiem sakot, MSE mums norāda, cik precīzs vai neprecīzs ir mūsu lineārās regresijas modelis - jo zemāka MSE, jo “labāks” modelis prognozē vērtības. Apskatīsim mūsu regresijas modeļa MSE:

Mūsu mainīgā mse atgriežas kā 26,6329.

Vēl viena mūsu rīcībā esošā novērtēšanas metrika ir saknes vidējā kvadrāta kļūda (RMSE), kas vienkārši ir mūsu MSE kvadrātsakne. Izmantojot kvadrātsaknes funkciju no Python matemātikas moduļa, sqrt (mse) atgriežas kā 5.1607.

Ir svarīgi ņemt vērā, ka mūsu RMSE vērtībai ir vienādas vienības kā atbildes mainīgajam (mēs izmantojām kvadrātsakni no kvadrāta kļūdām). Mūsu RMSE vērtība 5,1607 nokrītas salīdzinoši zemā vērtējuma mainīgā diapazonā no 0 līdz 100, tāpēc mūsu daudzkārtējās lineārās regresijas modelis ir “labs”, lai prognozētu graudaugu markas reitingu. Bet ir arī citas kļūdas, kuras mēs varam izmantot.

Vidējā absolūtā kļūda (MAE)

Nākamais regresijas novērtēšanas rādītājs, ko mēs apsvērsim, ir absolūtā kļūda (MAE).

Avots

Tā kā MSE sadala kvadrātā starpību starp atlikumiem, lielākas atšķirības starp faktiskajām un prognozētajām vērtībām MSE “soda” bargāk nekā MAE. Kvadrātveida terminu dēļ MSE ir jutīgāka pret novirzēm nekā MAE.

Ja mēs nolemtu, ka mūsu datu kopā novirzīšanās nav nozīmīga datu analīzē, pirms MSE mēs varam vērsties pie MAE, jo noviržu atlikumi netiks pārspīlēti no atlikumu sašķelšanas. Noskaidrosim MAE:

Mūsu mae mainīgais atgriež 3.6153. Mūsu MAE ir salīdzinoši mazs, ņemot vērā vērtējumu diapazonu no 0 līdz 100, tāpēc mūsu MAE norāda, ka mūsu modelis ir samērā precīzs prognozēs.

Vidējā absolūtā procentuālā kļūda (MAPE)

Galīgais regresijas novērtēšanas rādītājs, ko mēs apsvērsim, ir vidējā absolūtā procentuālā kļūda (MAPE).

Avots

MAPE procentos izsaka paredzamo modeļu precizitāti. Ievērojiet līdzību MAE un MAPE formulās. Tāpat kā MAE, arī MAPE lielākoties neietekmē novirzes. Tomēr izmantojiet MAPE piesardzīgi, jo

  • MAPE ir pakļauta dalīšanai ar nulles kļūdām (skat. Saucēju summēšanas laikā);
  • MAPE var izaugt ļoti liels, ja faktiskās vērtības ir ļoti mazas (atkal sk. Dalīšanas darbību summēšanā);
  • MAPE ir novirzīts uz prognozēm, kas ir mazākas par novērotajām vērtībām.

Apskatīsim mūsu modeļa MAPE:

Mūsu funkcija MAPE atgriež šādu procentuālo daļu: 8,458%. Tātad mūsu prognoze ir “izslēgta” vidēji par 8,5%.

AIC un BIC

AIC (Akaike informācijas kritērijs) un BIC (Bajesijas informācijas kritērijs) ir objektīvas metodes, lai novērtētu jūsu regresijas modeļus un noteiktu labāko pareģotāju apakškopu (kurš modelis der labāk).

Kad modelim pievienosit parametrus, tas vienmēr derēs nedaudz labāk. Bet tad jums ir risks zaudēt informāciju par reālo pamatā esošo modeli. Tādējādi pastāv kompromiss starp parametru skaitu un kļūdu daudzumu, par kuru jūsu modelis ir atbildīgs. AIC un BIC novērtē modeļu spēju ņemt vērā papildu izmaiņas mainīgajā, kuru jūs prognozējat, bet modeli pārāk nepieskaņojot.

AIC

AIC ļauj novērtēt modeļos zaudētās informācijas daudzumu, lai jūs varētu salīdzināt, kuri modeļi darbojas vislabāk, un izvēlēties piemērotāku prognozētāju apakškopu. Precīzāk, AIC vērtība aplūko relatīvo attālumu starp datu patiesās varbūtības funkciju un jūsu modeļa piemēroto varbūtības funkciju. Jo mazāks ir šis attālums, jo tuvāk modelim ir patiess jūsu datu attēlojums. AIC apzīmē ar šo formulu:

N novērojumu skaits, K parametru skaits der + 1

Ja salīdzinām divu modeļu piemērotību, izmantojot AIC metodi, labāk der modelis, kuram ir zemāka AIC vērtība.

Pieņemsim, ka atradīsim AIC vērtības mūsu diviem iepriekš izmantotajiem vairākkārtējās regresijas modeļiem. Vienam ir trīs pareģotāji, bet otram - četri. Vispirms mēs definēsim vērtības, kuras mēs pievienosim formulai, un pēc tam mēs darbosim formulu:

Tas dod šādu rezultātu:

  • Modeļa ar trim pareģotājiem AIC: 60.51438447233831
  • Modeļa ar četriem pareģotājiem AIC: 62.31365180026097

No tā, ko mēs redzam, modelim ar trim pareģotājiem ir zemāka AIC vērtība, un tāpēc tas ir labāk piemērots nekā modelis ar četriem pareģotājiem (bet šajā piemērā tas nav maz).

BIC

BIC ir līdzīgs AIC, taču tas ir daudz stingrāks attiecībā uz tā, lai jūsu modeli sodītu par papildu parametru pievienošanu. To apzīmē ar šādu formulu:

N novērojumu skaits, K parametru skaits der + 1

Ja salīdzinām divu modeļu piemērotību, izmantojot BIC metodi, tad modelis ar zemāku BIC vērtību ir labāk piemērots, līdzīgi kā AIC metodes process.

Pieņemsim BIC vērtības tiem pašiem diviem modeļiem, kurus mēs tikko izmantojām. Vienīgā atšķirība ir soda, ko mēs reizinām parametru skaitu ar:

Tas dod šādu rezultātu:

  • Modeļa ar trim pareģotājiem BIC: 63.60473936129743
  • Modeļa ar četriem pareģotājiem BIC: 66.17659541145987

No tā, ko mēs redzam šeit, modelim ar trim pareģotājiem ir zemāka BIC vērtība, un tāpēc tas ir labāk piemērots nekā modelis ar četriem pareģotājiem. Tā kā BIC sods ir stingrāks nekā AIC sods, BIC metodes vērtības ir lielākas nekā AIC metode attiecīgajiem modeļiem.

Sakarā ar soda atšķirībām AIC var izvēlēties modeli ar vairāk parametriem nekā BIC. Ieteicams izmantot AIC un BIC kopā un pieņemt lēmumus par modeļiem, pamatojoties uz abām rezultātu kopām. Šajā gadījumā AIC un BIC savstarpēji vienojās un izvēlējās tos pašus modeļus.

Atslēgas vārdnīca

Apkopojot, mēs apspriedām

  • R²: indikators tam, cik spēcīgs lineārās regresijas modelis prognozē reakcijas mainīgo
  • Pielāgots R²: rādītājs tam, cik spēcīgs daudzkārtējās lineārās regresijas modelis rada atkarības mainīgā dispersiju, vienlaikus koriģējot modeļa parametru skaitu
  • MSE (vidējā kvadrāta kļūda): novērtējuma metrika, kas ievērojami soda novirzes; iespējams, pirmā kļūda, kuru aprēķināsit un kuru izmantosit, ja novirzes attēlo patiesu datu kopas fenomenu
  • RMSE (vidējā kvadrāta kļūda): MSE kvadrātsakne; dalās ar tām pašām vienībām kā atbildes mainīgais, tāpēc RMSE var būt “interpretējama” nekā MSE
  • MAE (vidējā absolūtā kļūda): novērtējuma rādītājs, ko izmanto, lai mazinātu noviržu nozīmi, mērot kļūdu; izmanto, ja novirzes nepārsniedz patiesu datu kopas fenomenu
  • MAPE (vidējā absolūtā procentuālā kļūda): regresijas modeļa precizitātes rādītājs procentos; ar noslieci uz izpildlaika kļūdām vai neparasti lielām vērtībām, kad reakcijas mainīgais uzņem mazas vērtības
  • AIC (Akaike informācijas kritērijs): dažādos modeļos zaudētās informācijas daudzuma novērtējums, kas soda par parametru palielināšanos. Neatkarīgi no jūsu datu lieluma, tam vienmēr ir iespēja izvēlēties pārāk lielu modeli. Vislabāk izmantojams kopā ar BIC.
  • BIC (Bajesijas informācijas kritērijs): līdzīgs AIC, bet soda smagāk. Neatkarīgi no jūsu datu lieluma, tam vienmēr ir iespēja izvēlēties pārāk mazu modeli. Vislabāk izmantojams kopā ar AIC.

Secinājums

Šajā apmācībā mēs parādījām, kā ar Python palīdzību ieviest vienkāršus un vairākus lineāras regresijas modeļus, kā arī dažādas metodes šo modeļu un to kļūdas novērtēšanai.

Strādājot ar savām datu kopām, varat izvēlēties izmantot kādu no šīm metodēm, lai novērtētu savus regresijas modeļus un kļūdas. Tomēr, iespējams, ir jūsu interesēs izmantot vairākus no šiem modeļiem un redzēt, kā to rezultāti izlīdzinās vai atšķiras, lai izlemtu, kurš no jūsu modeļiem vislabāk atspoguļo jūsu datus.

Tagad jums vajadzētu būt ērtākam, izmantojot savus lineārās regresijas modeļus, un labāk jāapzinās visu aplūkoto regresijas metriku līdzības un atšķirības.