Vad är regression?

Slutförd

Regression fungerar genom att upprätta en relation mellan variabler i data som representerar egenskaper – så kallade funktioner – för det som observeras och variabeln vi försöker förutsäga – som kallas etiketten.

Kom ihåg att vårt företag hyr cyklar och vill förutsäga det förväntade antalet uthyrningar under en viss dag. I det här fallet inkluderar funktioner saker som veckodag, månad och så vidare, medan etiketten är antalet cykeluthyrningar.

För att träna modellen börjar vi med ett dataexempel som innehåller funktionerna, samt kända värden för etiketten. Så i det här fallet behöver vi historiska data som inkluderar datum, väderförhållanden och antalet cykeluthyrningar.

Vi delar sedan upp det här dataexemplet i två delmängder:

  • En träningsdatauppsättning som vi ska använda en algoritm som bestämmer en funktion som kapslar in relationen mellan funktionsvärdena och de kända etikettvärdena.
  • En validerings - eller testdatauppsättning som vi kan använda för att utvärdera modellen genom att använda den för att generera förutsägelser för etiketten och jämföra dem med de faktiska kända etikettvärdena.

Användningen av historiska data med kända etikettvärden för att träna en modell gör regression till ett exempel på övervakad maskininlärning.

Ett enkelt exempel

Låt oss ta ett enkelt exempel för att se hur träning och utvärderingsprocessen fungerar i princip. Anta att vi förenklar scenariot så att vi använder en enda funktion – genomsnittlig daglig temperatur – för att förutsäga cykeluthyrningsetiketten.

Vi börjar med vissa data som innehåller kända värden för funktionen för genomsnittlig daglig temperatur och cykeluthyrningsetiketten.

Temperatur Uthyrning
56 115
61 126
67 137
72 140
76 152
82 156
54 114
62 129

Nu ska vi slumpmässigt välja fem av dessa observationer och använda dem för att träna en regressionsmodell. När vi pratar om att "träna en modell" menar vi att hitta en funktion (en matematisk ekvation, låt oss kalla den f) som kan använda temperaturfunktionen (som vi kallar x) för att beräkna antalet uthyrningar (som vi anropar y). Med andra ord måste vi definiera följande funktion: f(x) = y.

Vår träningsdatauppsättning ser ut så här:

x y
56 115
61 126
67 137
72 140
76 152

Vi börjar med att rita träningsvärdena för x och y i ett diagram:

Diagram som visar träningsfunktioner ritade mot etiketter.

Nu måste vi anpassa dessa värden till en funktion, vilket möjliggör viss slumpmässig variation. Du kan förmodligen se att de ritade punkterna bildar en nästan rak diagonal linje; Det finns med andra ord en uppenbar linjär relation mellan x och y, så vi måste hitta en linjär funktion som passar bäst för dataexemplet. Det finns olika algoritmer som vi kan använda för att fastställa den här funktionen, som i slutändan hittar en rak linje med minimal övergripande varians från de ritade punkterna. Gillar det här:

Diagram som visar träningsfunktioner ritade mot etiketter med en regressionslinje.

Linjen representerar en linjär funktion som kan användas med valfritt värde av x för att tillämpa linjens lutning och dess skärningspunkt (där linjen korsar y-axeln när x är 0) för att beräkna y. I det här fallet, om vi utökade linjen till vänster, skulle vi upptäcka att när x är 0, y är cirka 20, och linjens lutning är sådan att för varje enhet i x du går vidare till höger ökar y med cirka 1,7. Vi kan därför beräkna vår f-funktion som 20 + 1,7x.

Nu när vi har definierat vår förutsägelsefunktion kan vi använda den för att förutsäga etiketter för valideringsdata som vi höll tillbaka och jämföra de förutsagda värdena (som vi vanligtvis anger med symbolen ŷ eller "y-hat") med de faktiska kända y-värdena.

x y
82 156 159.4
54 114 111.8
62 129 125.4

Nu ska vi se hur värdena y och ŷ jämförs i ett diagram:

Diagram som visar valideringsfunktioner ritade mot förutsagda och faktiska etiketter.

De ritade punkterna som finns på funktionsraden är de förutsagda ŷ värden som beräknas av funktionen, och de andra ritade punkterna är de faktiska y-värdena.

Det finns olika sätt att mäta variansen mellan de förutsagda och faktiska värdena, och vi kan använda dessa mått för att utvärdera hur bra modellen förutsäger.

Kommentar

Maskininlärning bygger på statistik och matematik, och det är viktigt att vara medveten om specifika termer som statistiker och matematiker (och därmed dataforskare) använder. Du kan se skillnaden mellan ett förutsagt etikettvärde och det faktiska etikettvärdet som ett felmått. I praktiken baseras dock de "faktiska" värdena på exempelobservationer (som i sig kan vara föremål för viss slumpmässig varians). För att klargöra att vi jämför ett förutsagt värde (ŷ) med ett observerat värde (y) refererar vi till skillnaden mellan dem som residualer. Vi kan sammanfatta residualerna för alla förutsägelser om valideringsdata för att beräkna den totala förlusten i modellen som ett mått på dess förutsägelseprestanda.

Ett av de vanligaste sätten att mäta förlusten är att kvadratera de enskilda residualerna, summera kvadraterna och beräkna medelvärdet. Kvartering av residualerna har effekten att basera beräkningen på absoluta värden (ignorera om skillnaden är negativ eller positiv) och ge större vikt till större skillnader. Det här måttet kallas för mean squared error (Medelvärdeskvaddfel).

För våra valideringsdata ser beräkningen ut så här:

y y - ŷ (y - ŷ)2
156 159.4 -3.4 11.56
114 111.8 2,2 4,84
129 125.4 3,6 12.96
Summa 29.36
Medelvärde 9.79

Därför är förlusten för vår modell baserat på MSE-måttet 9,79.

Så, är det bra? Det är svårt att säga eftersom MSE-värdet inte uttrycks i en meningsfull måttenhet. Vi vet att ju lägre värdet är, desto mindre förlust finns det i modellen, och desto bättre är det därför att förutsäga. Detta gör det till ett användbart mått för att jämföra två modeller och hitta den som presterar bäst.

Ibland är det mer användbart att uttrycka förlusten i samma måttenhet som själva det förutsagda etikettvärdet. i det här fallet antalet uthyrningar. Det är möjligt att göra detta genom att beräkna kvadratroten för MSE, som genererar ett mått som föga förvånande kallas RMSE (Root Mean Squared Error).

√9.79 = 3.13

Därför indikerar vår modells RMSE att förlusten är drygt 3, vilket du kan tolka löst som att felaktiga förutsägelser i genomsnitt är felaktiga av cirka tre uthyrningar.

Det finns många andra mått som kan användas för att mäta förlust i en regression. Till exempel är R2 (R-Kvadrat) (kallas ibland koefficient för bestämning) korrelationen mellan x och y kvadrat. Detta ger ett värde mellan 0 och 1 som mäter mängden varians som kan förklaras av modellen. Ju närmare det här värdet är 1, desto bättre förutsäger modellen.