Hoppa till innehåll

AI-skolan: Hur fungerar Linear Regression

Nu när jag har börjat med  min AI-satsning vill jag gärna dela med mig av mina nyvunna kunskaper. Jag ska försöka beskriva det så enkelt så möjligt. Så enkelt att en riktig n00b kan förstå. Sedan när morsan frågar mig om hur Linear Regression fungerar så kommer jag kunna hänvisa till denna text.

För det kommer säkert hända!

Linear Regression, eller Linjär Regression på svenska, är en teknik man använder för att uppskatta ett värde utifrån ett antal parametrar. Tappade jag bort dig redan? Dröj kvar, jag ska förklara mer. Var det för simpelt? Jag sade att det blir en enkel beskrivning. Vill du göra det svårt för dig kan du till exempel pröva med Wikipedia.

Vad är Linear Regression

Tänk dig att du ska sälja din bil. Det är en Peugeot 308 från 2008 som har gått runt 16’000 mil. Du har kollat runt lite på Blocket och sett att det finns fyra olika Peugeot 308 från 2008 ute just nu. Priset på dessa ligger någonstans mellan 25’000 och 50’000 kronor. Du funderar. Inte kan väl min pärla bara vara värd 25’000? Dessutom har ju din bil automat, det har ju ingen av de andra bilarna. Det finns en bil från 2012 som har automat, men den kostar ju 75’000. Det låter mycket.

Här är ett typiskt exempel på när Linear Regression kan hjälpa dig. (Jag använder den engelska termen, för att det känns rätt för mig. Vill du istället använda termen Linjär Regression får du skaffa din egen blogg! Eller så kan du tänka Linjär Regression när du läser Linear Regression i texten nedan)

Linear Regression är en metod för att samla alla kända inparametrar på din bil och få ut en realistisk uppskattning på vad den kan kosta. Ordet parameter betyder “för att mäta”. Mätvärden som vi säger på svenska. Typiska inparametrar i vårt exempel är “årsmodell 2008”, “Peugeot 308”, “16’000 mil” och “Automat”. 

Blocket

Så, genom att samla ihop alla parametrar för alla bilar som ligger på Blocket och lägga in dem i din modell så kan du komma fram till en ganska bra uppskattning. Just nu ligger det 123’000 bilar på blocket. Var och en av dem har olika tillverkare, modellbeteckning, antal mil, nypris, utrustningsnivå, potentiell dragkrok och så vidare. Kort sagt finns det jättemycket data. Vi får koncentrera oss på det som är viktigt!

Om vi väljer ut 2 värden så kommer detta att bli enkelt att räkna på. För det första låser vi parametern “Modell” till “Peugeot 308 Diesel”. Sedan väljer vi ut antal mil som vår inparameter. Det känns relevant att ta med bilar som är mellan två år äldre och två år nyare än din kärra. Det blir alltså från 2006 till 2010. Vi vill också veta vad var och en av dessa bilar kostar, eftersom det är vårat mätvärde. Våran utparameter.

Data

Det finns 37 stycken sådan bilar på blocket just nu. Den billigaste kostar 24’500 kronor, den är från 2009 och har gått 21’000 mil. Den dyraste kostar 63’900 kronor. Låt oss ta alla de här värdena och måla en liten bild.

Hur fungerar Linear Regression

Såhär ser alltså våra mätdata ut. Antal mil bilen har gått är den nedre axeln, x-axeln. Priset på bilen är höjden på krysset, alltså y-axeln. Varje kryss motsvarar en av de 37 bilarna på blocket. Det är en ganska stor spridning på priserna, som vi kan se. Det beror till stor del på att vi har fem olika årsmodeller och olika utrustningsnivåer och så vidare. Men för exemplets skull bortser vi från det en stund. 

Vi kan i alla fall konstatera att det finns ett någorlunda klart mönster i hur värdena är placerade. Bilar som har gått 6’000 mil är generellt sett dyrare än de som har gått 20’000. Men det är fortfarande svårt för oss att lista ut hur mycket vi ska ta betalt för din bil, den som har gått 16’000. Någonstans mellan 35’000 och 60’000 verkar vettigt.

Det är nu Linear Regression kommer in i bilden. 

Hur fungerar Linear Regression

Det Linear Regression gör är att rita ett streck över hela din teckning. Ni vet lite som när man har glömt filtpennan framme och ungarna ritar på den nya tapeten. Linear Regression ritar tack och lov bara ett streck. Strecket går från vänster till höger, eller från höger till vänster beroende på hur man ser det. För varje punkt på strecket kommer man kunna läsa ut ett värde x och ett värde y. I vårt fall motsvarar det antal mil och årtal. Låt oss rita in ett streck i bilden. Ett rött streck

Linear Regression steg 1

Nu när strecket är på plats så går algoritmen (vår beräkning, Linear Regression, kallas för algoritm) igenom alla punkter i vår lista och räknar ut hur långt det är mellan just den punkten och strecket. Alltså, Vi kan se att den inringade punkten där en bil som har gått 16’535 som kostar 49’900 ligger ganska mitt på linjen. Vilket bra mätvärde vi har valt!

Men för andra punkter passar inte strecket lika bra. Mätpunkten som har miltalet 23’000 mil borde bara kosta 32’000 kronor, men strecket säger ju att den ska kosta 58’000. Det är punkten med de gröna pilarna i bilden. Det betyder att strecket i just den punkten behöver justeras en liten smula för att det ska bli rätt. 

Efter att vi har räknat igenom alla punkter så kommer vi få en totalsumma på hur fel vårat streck ligger. Målet för Linear Regression är att flytta runt strecket tills denna totalsumma är så liten som möjligt. Strecket kommer då att följa mätvärdena såpass bra att om man flyttar det någon smula uppåt eller neråt, eller vrider det medurs eller moturs, så kommer resultatet bara att bli sämre.

Gymasiematte

Minns ni den där störiga snubben i klassen i gymnasiet? Ni vet han som satt längst bak i klassrummet och ifrågasatte, störde och ställde dumma frågor? Kommer ni ihåg den gången han hojtade “Derivata! Idiotiskt! Vi kommer aldrig använda derivata!”

Men vet ni vad! Nu ska vi använda derivata! För att parafrasera Jesper RönndahlIn your face, störige killen!

När man räknar fram derivatan så räknar man egentligen fram förändringen av en kurva i en given punkt. (Från latinets deriverare, leda, svänga). Låt mig säga det på ett annat sätt. På ett valfritt ställe på en kurva, exakt hur mycket svänger det? Ett rakt streck har derivatan 0. Det svänger inte alls. Derivatan av många av Aviciis låtar är däremot ganska hög. De svänger rejält. 

Med andra ord kan man – genom att studera kurvans lutning i en given punkt – med hjälp av derivatan se åt vilket håll man ska förflytta sig för att det ska bli ett bättre värde på vårt lutande streck. Inte nog med att vi kan se om strecket ska luta mer medurs eller moturs. Derivatan kan också berätta för oss hur mycket det ska rotera! Det är smått genialiskt, faktiskt. Tur att det finns smarta människor i världen som hittar på lösningar på sådana här problem.

Repetition är inlärningens moder

Ja, för att göra en lång historia kort. Man räknar ut hur mycket man ska vrida linjen och sedan vrider man den. Sedan mäter man igen och ser hur fel det blir. Sedan räknar man ut hur mycket man ska vrida linjen. Man mäter igen hur fel det blir. Efter ett antal gånger har man ett bra värde.

Men, sade du inte att man kunde räkna ut hur mycket man ska vrida strecket direkt? Jo, det gjorde jag. Det finns formler för detta. Men när vi lägger till flera parametrar, ni minns “utrustningsnivå”, “Färg”, “Växellåda” så blir det snabbt ganska avancerat. Genom att putta linjen en liten smula i rätt riktning om och om igen så kan vi närma oss rätt värde på linjen.

I vårat fall (läs: i mitt fall, efter de extra parametrar jag satte upp i beräkningen för att säga hur mycket linjen skulle flytta sig varje gång) så tog det ungefär 4’000 repetitioner innan strecket hittade rätt.

Jaha, till slut ser man var linjen har hamnat. Med det här strecket så skiljer sig genomsnittet av alla värden mindre än en miljarddel mot strecket. 

Linear Regression Resultat

Medianen är 1200 spänn. Nu är det en smal sak att gå in och mäta i grafen. 

16’000 mil, sade du? Då föreslår jag att du lägger ut den för 45’376 kronor på blocket. 

Lycka till med försäljningen!

3 kommentarer till “AI-skolan: Hur fungerar Linear Regression”

  1. Ok jag fattar (att någon annan kommer att få räkna åt mig.) Men varför heter det regression? För mig är regression något som Freud och gubbarna talar om inom utvecklingspsykologin. Då handlar det dessutom om att man går tillbaka i utvecklingen och det rimmar ju illa med AI…

    1. I statistiken är regression relationen mellan medelvärdet av en parameter och värdet av ett annat värde. Som sambandet tid och pengar.
      Uttrycket myntades i det sambandet av Francis Galton i hans ”Regression towards Mediocrity in Hereditary Stature” år 1886. Där slog han fast att medllängden på barnen inte beror på föräldrarna utan på populationen i stort.
      Tack Wikipedia för den informationen!

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

Denna webbplats använder Akismet för att minska skräppost. Lär dig hur din kommentardata bearbetas.

%d bloggare gillar detta: