• No results found

Hur många cyklar imorgon? - En studie i Malmö med regressionsanalys

N/A
N/A
Protected

Academic year: 2021

Share "Hur många cyklar imorgon? - En studie i Malmö med regressionsanalys"

Copied!
48
0
0

Loading.... (view fulltext now)

Full text

(1)

Hur många cyklar imorgon? - En

studie i Malmö med

regressionsanalys

How many will bicycle tomorrow? – A

study in Malmö with regression analysis

David Svensson

Murtadha Al-asadi

Datavetenskap Kandidatnivå 15 hp VT19

Handledare: Johan Holmgren Examinator: Blerim Emruli

(2)

i

Sammanfattning

Mer hållbara transporter i urban miljö är under ständig utveckling. För att bidra till detta jobbar vi med att bygga bättre kunskap om cykeltrafik med fokus på Malmö, Sverige. Tillsammans med exempelvis väderdata, som består av temperatur och nederbörd utvecklar vi modeller för att uppskatta hur många cyklar som förväntas trafikera en viss plats under nästkommande dag. Detta kan bidra till förbättrade transporter i urbana miljöer, exempelvis genom att känna till korrelationen mellan cykel- och bussresenärer kan man på så vis kunna uppskatta behovet av extrabussar. Vidare har vi studerat precisionen av några algoritmer och hur väl dessa predikterar antalet cyklister. Vårt huvudverktyg är Sci-kit learn som innehåller en mängd olika maskininlärningsalgoritmer. Slutligen beskriver vi den regressionsalgoritm som har bäst förmåga att uppskatta antalet cyklister imorgon. För att nå vårt slutresultat beskriver vi hur vi bearbetat cykelflödesdata, för att exempelvis ta bort dagar då cykelräknare varit sönder. Enligt våra resultat är regression med ett neuralt nätverk den bästa algoritmen för uppskattning av cykelflöde, ett neuralt nätverk hamnar efter 400 dagar under 15% i genomsnittlig feluppskattning. För att bedöma vilken som presterar bäst använder vi det absoluta relativa felet som beskriver hur stor skillnaden mellan det exakta värdet och prediktionen är. Vi kom fram till att om man lägger till vilken tid på året det är blir prediktionen bättre som med utan tid på året, det finns alltså en stark korrelation mellan tid på året och antalet cyklister.

(3)

ii

Abstract

More sustainable transport in an urban environment is under constant development. In order to contribute to this, we are building better knowledge of bicycle traffic with a focus on Malmö, Sweden. Together with variables such as weather data, which consists of temperature and precipitation, we develop models to estimate how many bicycles are expected to pass a particular street during the next day. This can contribute to transports in urban environments, for example by knowing the correlation between bicycle and bus travelers and thus being able to appreciate the need for extra buses. Furthermore, we have studied the precision of some algorithms and how well these predict the number of cyclists. Our main tool is Sci-kit learn which offers a variety of machine learning algorithms. Finally, we will describe the regression algorithms that have the best ability to estimate the number of cyclists tomorrow. In order to reach our end result, we describe how we processed the bicycle data, for example how we removed days when the cycling barometer was broken. According to our results, regression with a neural network is the best algorithm for estimating the bicycle flow, a neural network gives us, after 400 days less than 15% average error estimate. To judge which one performs the best, we use absolute relative error that describe how big the difference between the exact value and the approximation is. We concluded that by adding what time of year it is, the prediction is better than without the time of the year, there is thus a strong correlation between the time of the year and the number of cyclists.

(4)

iii

Förord

Vi vill visa vår uppskattning till vår handledare Johan Holmgren på Malmöuniversitet som tagit sig tid att vägleda och stödja oss under denna studie.

Vi vill även tacka vår examinator, Blerim Emruli för viktig återkoppling vi fått under studiens gång.

(5)

iv

Innehållsförteckning

1. Inledning ...1

1.1 Bakgrund ...1

1.2 Syfte ...2

1.3 Problemformulering och forskningsfrågor ...3

1.4 Begränsningar ...4

2. Relaterat arbete ...5

2.1 Cykelutlåningssystem ...5

2.2 Prediktion av cykelflöden ...6

2.3 Cykling och väder ...7

3. Teoretisk bakgrund ...9 3.1 Maskininlärning...9 3.1.1 Övervakad inlärning ...9 3.1.2 Oövervakad inlärning ...9 3.2 Regression ...10 3.2.1 Linjär regression...10 3.2.2 Trädbaserad regression ...11 3.2.3 Neuralt nätverk ...12 3.2.4 Stödvektormaskin...13 3.3 Feluppskattning ...13 4. Forskningsmetod...15

4.1 Identifiera och formulera problem ...17

4.2 Litteraturstudie ...17

4.3 Insamling och bearbetning av data ...18

4.4 Formulering av regressionsproblem ...18

4.5 Design och genomförande av experiment...18

4.6 Analys ...19

4.7 Verktyg ...19

5. Design och genomförande av experiment ...20

5.1 Regressionsproblem ...20

5.2 Databearbetning ...22

5.2.1 Filtrering av dåliga värde ...22

(6)

v

5.3 Experimentdesign ...23

5.4 Hitta den mest lämpliga tidsperioden ...25

5.5 Konfigurationer av regressionsalgoritmer...26

5.5.1 Neuralt nätverk ...27

5.5.2 Stödvektormaskin...27

5.6 Feluppskattning ...28

5.7 Värsta möjliga prediktion - Utvärderingsmetod...28

6. Resultat ...29

6.1 Resultat av regression med absolut relativt fel ...29

6.2 Fas 1 - Regressionsproblemformulering (FF1)...34

6.3 Fas 2 - Vilken regressionsalgoritm lämpar sig bäst? (FF2) ...34

6.4 Fas 3 - Hur lång tidsperiod av historisk data behövs? (FF3) ...35

7. Analys ...36

7.1 Metod ...36

7.2 Regressionsproblemformulering (FF1) ...36

7.3 Vilka regressionsalgoritmer lämpar sig bäst? (FF2) ...36

7.4 Hur lång tidsperiod av historisk data behövs? (FF3) ...36

8. Diskussion ...38

8.1 Regressionsproblemformulering ...38

8.2 Val av regressionsalgoritmer ...38

8.3 Den mest lämpliga tidsperioden ...39

9. Slutsatser och framtida arbete...40

(7)

1

1. Inledning

1.1 Bakgrund

Att använda cykeln har ett flertal fördelar gentemot andra transportmedel. Jämfört med exempelvis bilen har cykeln nästan ingen negativ inverkan på miljön, den tar inte upp lika mycket plats på våra vägar och infrastrukturen som krävs för att få cykeltrafik att fungera bra är relativt billig. Vidare ger cyklar knappt något ljud ifrån sig, vilket är bra för att hålla bullernivåerna i större städer nere [1]. Cykling kan i vissa fall gå snabbare än andra transportmedel, speciellt i områden med ett stort antal invånare där cykeln kan hjälpa till att undvika trafikstockning [2]. Med dessa faktorer i åtanke kan man se att cykeln ofta är ett väldigt fördelaktigt transportmedel för kortare sträckor.

En annan viktig fördel med cykling är dess förmåga att få människor att må bra, då cykling bland annat motverkar fetma och ökar människors psykiska välbefinnande [2]. Enligt WHO (World Health Organization) lever man i regel längre om man cyklar än om man pendlar med bil eller kollektivtrafik. Detta trots att cyklister utsätts för luftföroreningar och risker såsom att skada sig eller att dö genom olycksfall. Personer som cyklar minst 7 timmar i veckan förminskar sin risk för en förtida död med 45 procent i åldern 20–64 år [3].

På grund av cykelns många fördelar arbetar trafikmyndigheter (främst kommuner) aktivt med att öka andelen resor som genomförs med cykel. Det finns många exempel på åtgärder som syftar till att öka cykelns popularitet, till exempel att bygga farthinder för bilar och att bygga cykelvägar där man skiljer på cyklar och bilar. Men för att kunna förstå vilka åtgärder som bör göras samt veta var man skall utföra åtgärderna är det viktigt att samla in data om cykeltrafik. Detta kan till exempel göras med hjälp av cykelräknare. Insamlade data från cykelräknare kan användas för att bygga bättre kunskap om cykelflöden i staden. Då cykelräknaren ger visuell information till cyklister, kan den insamlade data av antalet cyklar bidra till att motivera resenärer att välja cykeln som resealternativ. Antalet cykelräknare i Sverige har ökat under de senaste fem åren. För fem år sedan fanns endast några enstaka stationer där antalet cyklister räknades. Med tiden har antalet stationer snabbt ökat till ungefär 250 stycken. Trots detta finns det vissa kommuner som utfört korttidsmätningar som visar att cyklingen har ökat kraftigt under de senaste åren [3].

Data från cykelräknare kan användas för att studera hur mängden cyklister förändras över tid, och om man har flera cykelräknare i en stad kan man även utläsa hur flöden förflyttar sig i en stad över tid. Tidigare forskning har visat att man kan prediktera antalet cyklar som förväntas passera cykelbarometern under en dag med hjälp av regressionsmodeller där egenskaper såsom veckodag, väder och årstid används för att uppskatta antalet förbipasserande cyklar. Holmgren m.fl. [4] och Multubakk och O'Neill [5] fokuserar på att kunna kvantifiera kopplingen mellan exempelvis väder, tid på året, veckodag och antalet cyklar som mäts upp vid en viss plats. Holmgren m.fl [4] påvisar

(8)

2

att man med hjälp av regressionsanalys kan prediktera antalet cyklar som förväntas passera en cykelräknare. Holmgren m.fl. [4] jämför två regressionsproblem, med två olika målvariabler: ett problem där målvariabeln är det absoluta antalet cyklar, och ett problem där man använder en avvikelse från en långsiktig trenduppskattning av antalet cyklar som målvariabel. Deras resultat visar att man med hjälp av en avvikelse från trendkurvan med antalet cyklar som målvariabel har större potential att uppnå en god uppskattning av antalet cyklar. Resultaten visar även att regression med hjälp av en stödvektormaskin och regressionsträd lämpar sig bäst för det studerade problemet, det vill säga uppskattning av antalet cyklar vid en mätstation.

Baserat på de resultat som presenteras av Holmgren m.fl. [4], undersöker Moltubakk och O´Neill [5] kurvanpassningar på cykeldata, detta för att studera om prediktionen av antalet cyklister kan förbättras. Kurvanpassningar används för att fånga hur antalet cyklar som passerar en mätstation förändras över tid, till exempel beroende på att man i en viss stad blir mer eller mindre benägen att cykla. Genom att uppskatta en långtidstrend kan man istället för att använda det absoluta antalet cyklar som målvariabel använda sig av avvikelsen från trendkurvan i regressionsmodellen. Genom att utvärdera deras metod kunde de dra slutsatsen att kurvanpassningar kan bidra till en bättre prediktion, vilket bekräftar det Holmgren m.fl. [4] kom fram till.

I tidigare nämnda arbeten har man hela tidsserien känd, och man gör klassiska regressionsanalyser med 10-faldig korsvalidering. Man delar upp hela mängden i tränings- och utvärderings-mängder, vilket ger en modell som kan kvantifiera kopplingen mellan kända parametrar och antalet cyklar. Den här studien fokuserar på att uppskatta antalet cyklar nästa dag baserat på en historisk serie data.

Vår studie använder sig av en tidsserie cykelflödesdata som under flera år samlats in i centrala Malmö med hjälp av en cykelräknare. Detta är samma dataserie som använts av Holmgren m.fl. [4] och Moltubakk och O’Neill [5]. Datamängden innehåller olika attribut såsom riktningen cyklisterna färdas i samt hur många cyklister som passerar mätstationen varje timme. Data sträcker sig över en lång tidsperiod (2006-09-13 t.om. 2014-03-31). Mätstationen består av en barometer med tillhörande slingor i asfalten som känner av metall, så kallade induktiva loopar.

1.2 Syfte

Det övergripande syftet med vår studie är att bidra till bättre och mer hållbara persontransporter i urban miljö. För att uppnå detta jobbar vi med att bygga bättre kunskap om cykeltrafik, med fokus på Malmö, och mer precist genom att utveckla modeller för att uppskatta hur många cyklar som förväntas trafikera en viss plats under nästkommande dag. Mer specifikt kommer vi att studera hur man med hjälp av en känd historisk serie cykelflödesdata på bästa kan prediktera hur många cyklar som förväntas passera en viss plats under nästa dag. På så sätt vill vi kunna uppnå en bättre uppskattning av antalet cyklister, vilket exempelvis skulle kunna användas för att planera kollektivtrafiken bättre. Om man känner till antalet bussresenärer skulle man kunna studera

(9)

3

korrelationen mellan cykel- och bussresenärer, för att exempelvis uppskatta behov av extrabussar. Detta skulle på sikt skall kunna bidra till mer hållbara persontransporter i stadsmiljö. En annan förhoppning är att resultatet av studien på lång sikt skulle kunna bidra till förändring av infrastruktur. Vidare hoppas vi att studien kan bidra med en grund för att lösa liknande problem för andra former av trafik, exempelvis biltrafik.

1.3 Problemformulering och forskningsfrågor

Det finns många olika faktorer som påverkar hur många som kommer välja cykeln som transportmedel under en viss dag. Som nämnts ovan visar tidigare forskning [4,5] att det går att modellera relationen mellan vissa indatavariabler (egenskaper), till exempel väder, veckodag och antalet cyklar som förväntas under en viss dag. Baserat på de faktorer som enligt tidigare forskning förväntas ge störst påverkan för hur många resenärer som väljer att cykla, är vårt generella problem att avgöra hur man med hjälp av en serie historisk cykelflödesdata och regressionsanalys kan framställa en acceptabel prediktion av antalet cyklar som kommer trafikera en viss plats under nästkommande dag.

För att angripa vårt problem har vi valt att formulera följande forskningsfråga:

Hur kan man med hjälp av en historisk serie cykelflödesdata och regressionsanalys uppskatta hur många cyklar som kommer passera en viss plats under nästkommande dag?

För att kunna besvara vår huvudfråga har vi för vårt tillämpningsområde, det vill säga prediktion av antal cyklar som kommer passera en viss plats under nästa dag, formulerat följande tre forskningsfrågor som vi kommer studera explicit inom ramen för vår studie:

FF1: Vad är en lämplig regressionsproblemformulering för att uppnå god prediktionsprestanda? FF2: Vilken regressionsalgoritm ger bäst prediktionsprestanda?

FF3: Hur lång tidsperiod av historisk data är lämpligt att använda för att uppnå god

prediktionsprestanda?

Med god prediktionsprestanda menar vi minsta möjliga fel som går att uppnå för det studerade problemet.

Genom att besvara våra tre underfrågor (FF1-FF3) är vår avsikt att indirekt besvara vår huvudfråga.

(10)

4

1.4 Begränsningar

Vi har valt att begränsa vår studie till att använda data från endast en cykelräknare, som är lokaliserad vid Kaptensgatan i centrala Malmö. Vi har även valt att begränsa antalet regressionsalgoritmer (se FF2) som skall jämföras till en linjär regressionsmodell, en trädbaserad algoritm, ett neuralt nätverk samt en stödvektormaskin. Vidare kommer endast 2 års cykelflödedata användas för att studera hur lång historisk datamängd som är lämplig som input i vårt regressionsproblem.

(11)

5

2. Relaterat arbete

I denna del av rapporten presenterar vi de forskningsbidrag vi studerat inför vårt arbete. Man har tidigare använt maskininlärning för att prediktera cykeltrafik inom flera områden, och vi presenterar här tidigare forskning relaterat till några av dessa områden.

2.1 Cykelutlåningssystem

Det finns flera studier kring maskininlärning och cykelutlåningssystem, och vi kommer här presentera några som visar relevans för vår studie.

Ashqar m.fl. [6] studerar hur man med hjälp av maskininlärning kan modellera tillgängligheten av cyklar vid ett cykelutlåningssystem i San Francisco, USA. En teknik som testas är Random Forest (RF), vilket är en trädbaserad algoritm. En annan teknik som testas är Partial Least-Squares Regression (PLSR), som är en linjär algoritm. Data som används för studien är antalet cyklar och stationer som finns tillgängliga samt, hur lång tid cyklar lånas ut. För varje cykelutlåning finns det även tidsdata som inkluderar år, månad, dag samt vilken tid på dagen det är. Tillvägagångssättet för undersökningen var att testa de olika algoritmerna genom att bygga de olika modellerna, och med hjälp av olika variabler som testas en åt gången se vilken modell som ger bäst resultat. Test har även gjorts med flera variabler, såsom antalet cyklar som är tillgängliga och hur länge de lånas ut. RF användes för att testa regression med endast en variabel medans PLSR använder flera variabler. Resultatet visar att modellen som endast använder en variabel har bättre förmåga att förutspå avvikelser än modellerna som använder flera variabler.

Kang m.fl. [7] studerar hur man kan effektivisera cykelutlåningsprocessen. Genom att utnyttja information såsom antal cyklar, väder och veckodag kan man skapa en bild av hur cyklarna används och hur de historiskt fördelas bland de olika stationerna. Artikeln ger även en överblick över maskininlärning och hur man kan använda olika algoritmer närmare bestämt multiple linear regression, decision tree och random forest för att bemöta det studerade problemet. Multiple linear regression är den allra vanligaste modellen för dataanalys och prediktion. De använder maskininlärning för att prediktera hur cyklar rör sig och vart de kommer befinna sig, och de drar slutsatsen att random forest är den bästa prediktionsmodellen för denna typ av analys. Vidare beskriver han att man kan använda sig av flera variabler som har inverkan på hur människor tar beslut för att optimera prediktionsmodellen. Baserat på informationen som finns i artikeln, är denna typ av analys mycket värdefull för företag som ägnar sig åt uthyrning av cyklar eftersom de kan använda resultaten för att optimera uthyrningar genom att kartlägga var cyklarna befinner sug över tid.

(12)

6

2.2 Prediktion av cykelflöden

Aspegren och Dahlström [8] studerar hur man kan använda regression för att studera kopplingen mellan olika faktorer, exempelvis väder och veckodag, och mängden cyklar som passerat en viss plats under en dag. Vidare jämför de olika formuleringar av regressionsproblemet där olika faktorer används. De jämför olika regressionsmetoder och hur bra de predikterar antalet registrerade cyklar vid en cykelbarometer.

De jämfört även två regressionsproblem med två olika målvariabler, ett problem där målvariabeln är det absoluta antalet cyklar, och ett problem där man använder sig av en avvikelse från en långsiktig trenduppskattning av antalet cyklar som målvariabel.

Variablerna som används för regression är: • Vilket år datapunkten tillhör.

• Vilken veckodag datapunkten tillhör. • Medelvärde av temperaturen under dagen. • Medelvärde av nederbörd under dagen.

De har valt att använda sig av algoritmerna: Random Subspace, Bagging och REPTree.

I deras resultat framkom det att Random Subspace, vars mål är att minska korrelationen mellan estimatorer var bäst för det studerade problemet. Random Subspace tränas med slumpmässiga delar av data i stället för hela datamängden. Det framkom även att Bagging ger goda resultat, Bagging fungerar på ett sätt likt Random subspace och de är båda algoritmer inom maskininlärning som ämnar att förbättra stabiliteten hos maskininlärningsalgoritmer vid regression. Deras resultat visar även att man med hjälp av en avvikelse från trendkurvan har störst chans att erhålla ett väl uppskattat antal cyklar. Resultaten visar även att regression med hjälp av en stödvektormaskin och regressionsträd lämpar sig bäst för deras problem, alltså uppskattning av cyklar.

Holmgren m.fl. [4] vidareutvecklar de modeller som presenteras av Aspegren och Dahlström [8] och lyckas på så sätt uppnå ett ännu bättre resultat. Skillnaden är att Aspegren och Dahlström begränsar sin analys för att enbart prediktera med hjälp av att känna till vilka dagar som är arbetsdagar, medan Holmgren m.fl. använder ett större omfång av parametrar för att beskriva dagarna. Holmgren m.fl. har utöver indatavariablerna i Aspegren och Dahlström även med dagstyperna skollov, helgdagar samt klämdagar.

Moltubakk och O´Neill [5] (se även Holmgren m.fl. [9]) bygger vidare på de resultat som presenteras av Aspegren och Dahlström [8] och Holmgren m.fl. [4]. Specifikt studerar de i detalj hur man kan använda avvikelser från långsiktiga trendkurvor för att förbättra möjligheten att kvantifiera kopplingen mellan yttre faktorer och antal passerande cyklar vid en cykelräknare. Moltubakk och O’Neill presenterar även en metod för hur man kan gå tillväga för att på ett

(13)

7

strukturerat sätt studera hur väl olika trendkurvor förväntas bidra till att förbättra prediktionen av antalet passerande cyklar. Genom att fokusera på hur cykelflöden avviker från långsiktiga trendkurvor fokuserar Motubakk och O'Neill indirekt på att fånga effekter som beror till exempel på hur befolkningen förändras, arbetsplatser förflyttas och hur det ekonomiska läget förändras. Detta innebär att de studerar hur väder och andra variabler påverkar hur antalet cyklar förändras i förhållande till trenden istället för absolut antal cyklar. Moltubakk och O'Neill börjar med att utföra viss interpolering av data som ska användas. De väljer att använda: månad, veckodag, medelvärde av dagens nederbörd, medelvärde av vindhastighet samt medelvärde av dagens temperatur. Med hjälp av denna data genererar de kurvanpassningar, det vill säga polynom av olika grad. Sedan bestäms avvikelser mellan observerad data och varje trendkurva. I sina experiment använder de Stödvektormaskin, Linjär regression, Ridge regression, Bayesian Ridge Regression samt Lasso för att jämföra hur väl kurvanpassningarna passar det observerade antalet cyklister. De variabler som spelar stor roll för hur människor väljer vilket sätt de vill färdas på relaterar till väder. Många väljer alltså andra transportmedel när det till exempel regnar.

Zhao m.fl. [10] har presenterar modeller som förutspår cykelflöde i städer. Studien har fokus på Vancouver, Kanada där de studerar hur man kan förutspå cykelflöde baserat på väder. De använder det kontinuerliga antalet cyklar per timme samt väderinformation för att modellera cykeltrafiken. Studien använder ARIMA (Autoregressive Integrated Moving Average) som är en modell använd för prediktion av en serie data. Analysen går ut på att redovisa mönster av felvärdena för att sedan testa modellen mot faktiska cykelantal. Resultatet visar att temperatur, nuvarande nederbörd, nederbörd under de senaste 3 timmarna samt luftens fuktighet är signifikanta för antalet cyklister. De visar även att mängden cykeltrafik är cirka 40% större på vardagar gentemot helger. I Vancouver visar sig effekten av vädret ge en större påverkan av antalet cyklister än typiska semesterdagar eller lördagar. En ökning med 1° Celsius från medelvärdet ger en ungefärlig ökning med 1,65% cyklister, så en ökning med 10° ökar cykeltrafik med cirka 16,5%. Om det inte regnar och himmeln växlar från klar till molnig ges endast en förminskning med 0,62% vid var och en av de fyra övergångarna mellan kategorierna av molnigt till perfekt klara skyar.

2.3 Cykling och väder

Nankervis [11] studerar hur korrelationen mellan kortsiktiga och säsongsbetonade väderförhållanden visar sig i cykel och pendlingsmönster bland flera grupper studenter i Melbourne, Australien. Nankervis använder en intervjubaserad metod där han frågar deltagarna vilka väderförhållande som är mest avskräckande för cykling. Vidare har antalet cyklar runt Universitetet i Melbourne räknats på en daglig basis för att stötta den intervjubaserade delen av studien. Nankervis ifrågasätter antaganden som tidigare har gjorts, nämligen hur cyklister uppfattar de förhållanden som vanligen leder till en signifikant förminskning av cyklister de dagar eller perioder då dessa förhållande råder. Då det finns en god grund för att färre människor cyklar vid dåliga väderförhållanden, påvisar studien att effekterna inte är så stora som antaget. Denna del av

(14)

8

studien som är intervjubaserad visar hur människor väljer att cykla beroende på hur vädret förhåller sig. Med hjälp av detta finner han sambandet mellan väder och antalet cyklister. Regn var betygsatt som den mest kraftfulla avskräckande faktorn för cykling, till och med en större avskräckare än låg temperatur. Det framkom även att enbart vind har en relativt låg relevans om inte extrema förhållande råder.

(15)

9

3. Teoretisk bakgrund

I det här avsnittet beskriver vi några begrepp och koncept som är viktiga för att kunna få en god förståelse för vår studie. Vi kommer beskriva följande begrepp, vilka är centrala för vårt arbete: maskininlärning, övervakad inlärning, regression, linjär regression, trädbaserad regressionsalgoritm, neuralt nätverk, stödvektormaskin och feluppskattning.

3.1 Maskininlärning

Maskininlärning (eng. machine learning) är det område inom datavetenskapen som handlar om att utveckla modeller som kan få en dator att lära sig utifrån data som tidigare insamlats; i vårt fall att prediktera antalet cyklar som förväntas passera en plats baserat på exempelvis temperatur. Poängen med maskininlärning är att man inte ska behöva programmera algoritmen för att hantera eller tolka specifika värden, utan algoritmen lär sig istället utifrån de data den matas med. Ett exempel på en situation där maskininlärning kan vara applicerbart är när någon ber dig att programmera ett datorprogram som kan känna igen en människoröst. Detta hade varit ett mycket komplext problem att lösa på ett bra sätt beroende på att vi människor har svårt att beskriva fenomenet fullt ut. Vi kan alltså inte beskriva någon enkel algoritm för hur detta kan göras. Med hjälp av maskininlärning kan en dator lära sig känna igen mönster, exempelvis genom att registrera frekvenser och tonläge och på så sätt urskilja en människoröst från andra ljud.

Maskininlärning består huvudsakligen av två olika underkategorier, det vill säga, övervakad inlärning och oövervakad inlärning.

3.1.1 Övervakad inlärning

Vid övervakad inlärning (eng. supervised learning) är målet att hitta den funktion som utifrån en mängd exempel (bestående av indata och utdata) på ett korrekt sätt kan uppskatta den korrekta utdatan utifrån endast indata [12]. Övervakad inlärning består huvudsakligen av två kategorier: regression (se Avsnitt 3.2) och klassificering. Den huvudsakliga skillnaden mellan regression och klassificering är att man i regression försöker uppskatta ett kontinuerligt numeriskt utdatavärde, medan man i klassificering försöker hitta den kategoriska klass ett utdatavärde tillhör [12]. Träningsdata består av exempel, där varje exempel har en in-vektor (X) och ett målvärde (Y). Kort sagt handlar övervakad inlärning om att med hjälp av träningsdata identifiera en funktion som på ett så bra sätt som möjligt kan avbilda indatavektorer till ett utdata-värde (eller målvärde). När algoritmen är tränad görs typiskt ett test (med en annan del av datamängden än träningsmängden), vars mål är att utvärdera hur väl algoritmen fungerar [13].

3.1.2 Oövervakad inlärning

Oövervakad inlärning [14] är ett sätt att finna olika mönster i en datamängd som inte har färdiga exempel att lära sig ifrån.

(16)

10

Oövervakad inlärning innehåller bland annat klusteranalys, vars mål är att i en datamängd gruppera de datapunkter som är besläktade med varandra. Se Figur 1 för ett exempel över hur en mängd datapunkter sorterats i tre kluster (gul, blå, röd) beroende på hur nära de är varandra.

Figur 1. Illustration av 3 kluster.

Ett exempel över klusteranalys är en internetradiotjänst som använder sig en klustringsalgoritm för att kunna gruppera olika låtarna enligt deras genrer [14]. En utkomst av en sådan klusteranalys kan vara att algoritmen på ett önskvärt sätt delat in låtarna i rätt genre, dock kan samma algoritm dela in låtarna med avseende på tonart eller instrument vilket kommer leda till en annan typ av indelning.

3.2 Regression

En del av övervakad inlärning är regression. När regression tillämpas inom maskininlärning, är det inom den delen av övervakad inlärning som handlar om att uppskatta en kontinuerlig numerär målvariabel. Regression kan även tillämpas inom statistiken, där man kan utföra en regressionsanalys, vars mål är att uttrycka den funktion som bäst anpassar sig efter en mängd observera data. Då regression genomförts kan man få fram en linje eller kurva, i en eller flera dimensioner som följer de kontinuerliga värdena [15].

Nedan kommer vi beskriva regressionsalgoritmerna vi valt att använda, vilka är: linjär regression, trädbaserad regression, neuralt nätverk och stödvektormaskin.

3.2.1 Linjär regression

Linjär regression är en vanlig regressionsalgoritm, som används för att finna den linje som har minst avvikelse från datamängdens samtliga punkter [14]. Ett exempel på hur detta kan se ut grafiskt illustreras i Figur 2:

(17)

11 Figur 2. Illustration av hur en regressionslinje dras.

3.2.2 Trädbaserad regression

Loh [17] skriver att trädbaserade regressionsmodeller är användbara då man behöver en enkel och effektiv algoritm som kan hantera ett stort antal variabler och olika fall. Trädbaserad regression är en snabb regressionsmodell som går ut på "delning och erövring". Detta betyder att algoritmen rekursivt delar upp träningsdata till mindre undergrupper. I varje undergrupp finns en enkel prediktionsmodell som kan utvärdera data i undergruppen. Då alla variabler och modeller lagts in i trädet kan det presenteras grafiskt som ett beslutsträd (eng. decision tree) [16].

Se Figur 3 för ett exempel på ett beslutsträd. En beslutsnod (exempelvis Prediktionsfaktor - numerisk, i Figur 3) har två eller flera grenar (exempelvis 1, 2 eller 3, i Figur 3), vilka varje representerar värden. Bladnoder (exempelvis Målvariabeln, i Figur 3) representerar det numeriska målet som algoritmen kommit fram till. Den översta noden i ett träd motsvarar den bästa prediktionen [13]. Vår studie kommer nyttja ett beslutsträd som en av våra regressionsalgoritmer. Denna algoritm kan precis som tidigare nämnda algoritmer återge en regressionslinje, men metoden för att ta fram linjen ges av prediktionsmodellerna i varje undergrupp. För att ta fram regressionslinjen används en mängd val som bestämmer värdet, som linjen sedan viktas efter [14]. Detta illustreras i Figur 3.

(18)

12 Figur 3. Illustration av hur ett beslutsträd viktar en regressionslinje med hjälp av

prediktionsfaktorer och målvariabler.

3.2.3 Neuralt nätverk

Ett neuralt nätverk består av neuroner, där neuroner mottager och avger signaler från andra neuroner. Varje signal har en vikt och ett neuron avger en utsignal om summan av alla insignaler överstiger en viss vikt. Neuronerna är organiserade i ett nätverk med flera lager där ut-signalerna från ett lager blir in-signaler till nästa lager. Ett neuron behöver inte avge en utsignal trots att en insignal finns, vilket betyder att varje neuron har en funktion som antingen avvisar eller skickar vidare en utsignal, givet att det finns en insignal [17]. Figur 4 visar ett neuralt nätverk där cirklarna representerar neuroner och pilarna representerar signaler. Utgången representerar värdena algoritmen ger ut, dessa värden illustreras i vårt fall med en regressionslinje.

(19)

13

3.2.4 Stödvektormaskin

En stödvektormaskins mål är att hitta den linje i N-dimensionen (N är antalet variabler) som gör den bästa avgränsningen mellan datapunkterna. Stödvektorer är de datapunkter som är närmast hyperplanet (Se Figur 5), om punkterna som representerar stödvektorer skulle tas bort, hade positionen för hyperplanet/linjen förflyttats. Om antalet inmatningsfaktorer är 2, är hyperplanet en tvådimensionell linje. Om antalet inmatningsfaktorer är 3, blir hyperplanet istället ett tredimensionellt plan. Då stödvektorerna är bestämda kan man framställa en regressionslinje (Hyperplanet i Figur 5) [14].

Figur 5. Illustration över en regressionslinje dras med hjälp av en stödvektormaskin.

Stödvektormaskiner kan tillämpa en teknik som kallas kärnfunktioner, vilka tar ett lågdimensionellt inmatningsutrymme och omvandlar det till ett högre dimensionellt utrymme. Tekniken är mest användbar vid icke-linjära problem, detta då det kan bidra till bättre prediktioner.

3.3 Feluppskattning

Enligt Botchkarev [13] är feluppskattning en viktig komponent för utvärdering inom flera områden. Inom regression används prestationsmått för att jämföra den "lärda" modellen med det faktiska (observerade) utdatavärderna från datamängden. Prediktion kräver goda metoder för att mäta prestanda av olika regressionsalgoritmer. Detta för att veta hur mycket ett predikterat värde avviker från det faktiska (observerade), med hjälp av detta kan man bedöma kvalitet och välja prediktionsmetoder.

Det finns en mängd olika mått för att beskriva de fel som predikteras med hjälp av en regressionsalgoritm:

• Kvadratiska medelvärdet av avvikelsen (eng. root mean squared error) - beskriver standardavvikelsen av skillnaderna mellan de uppskattade värdena och de faktiska värdena.

(20)

14 • Kvadratiska relativa avvikelsen (eng. root relative squared error) - vilket är det totala kvadrerade felet som normaliseras genom att dividera med genomsnittet av de riktiga (observerade) värdena. Denna metod kommer användas för jämförelse av vårt slutresultat som testas med det absoluta relativa felet som beskrivs närmare nedan.

Metoden vi kommer använda för feluppskattning är det absoluta relativa felet (formel 1), som beskriver hur stor skillnaden mellan det exakta värdet och approximationen är. Det relativa felet är det absoluta felet dividerat med det exakta värdet. Värdet anges i procentform (%). Ett lågt absolut relativt fel speglar ett bättre resultat, medan ett högt relativt fel säger att resultatet är sämre. Vår studie är att prediktera antalet cyklister nästkommande dag. I vår studie kommer vi att använda det absoluta relativa felet som utvärderingsmetod för att identifiera vilken regressionsmodell som är bäst på att prediktera antalet cyklar.

• 100

Formel 1. Det absoluta relativa felet i procent (%).

(21)

15

4. Forskningsmetod

I detta avsnitt beskriver vi kortfattat de olika steg vår forskningsmetod innehåller och varför just denna metod passar vår studie. Detta avsnitt fokuserar främst på studiens upplägg och därefter (i Avsnitt 5) beskriver vi i detalj metoden för design och genomförande av vårt experiment.

Johannesson [19] föreslår att man använder designvetenskap (eng. Design science) för att utföra vetenskapliga studier av design med hjälp av artefakter som sedan utvärderas. Artefakterna ska innehålla relevant information såsom designlogik, byggnadsmetoder och vilka verktyg som används. Artefakten ska även beskriva de sammanhang där de avses att fungera. Exempel på en artefakt kan vara ett fysiskt objekt som exempelvis en bil men även ett mjukvarubaserat system. I vår studie är artefakten en regressionsmodell som kan användas för att prediktera antalet cyklar som förväntas passera en cykelräknare nästa dag.

Designvetenskap passar oss väl då ett viktigt mål med vår studie är att utveckla en artefakt, det vill säga en regressionsmodell (FF1), som vi sedan använder för att besvara övriga forskningsfrågor (FF2 och FF3). Designvetenskap ger oss även möjligheten att iterativt vidareutveckla vår artefakt, då metoden typiskt är en iterativ process där man i cykler förfinar den artefakt man utvecklar.

Designvetenskaplig forskning utförs genom att identifiera de problem som lämpligen löses med hjälp av artefakter. Dessa artefakter kan bidra till att uppfylla de krav man ställer på sin forskning. Designbaserad forskning innebär bland annat att man designar en artefaktsprototyp samt testar och utvärderar prototypen. Man kan också använda artefakten för att studera ett annat problem, i vårt fall FF2 och FF3. Därefter analyserar man artefaktens funktion, genom att testa dess användning.

Det som huvudsakligen gör att metoden är iterativ kommer av att man när man är klar med en cykel börjar man om och förfinar sin artefakt, exempelvis baserat på det man lärt sig från föregående iterationer och från att ha använt artefakten. Men även som nämnts ovan kan man gå tillbaka till tidigare steg för att göra de förändringar som krävs för att nå ett önskvärt resultat. Forskningen innebär också att man utför en datainsamling där man på olika sätt utvinner data, i vårt fall är detta vår tidsserie cykelflödesdata och väderdata för motsvarade tidsperiod.

Vidare beskriver Johannesson [19] att designbaserad forskning främst ger kunskap om artefakten i sig men även dess funktion. Man tar även reda på den kontextuella kunskapen från den miljö där artefakten implementeras. För att forskningen som utförs ska berättigas klassificering som designbaserad krävs det att kunskapen som produceras av designbaserad forskning måste ha förankring i kunskap som redan existerar, för att säkerställa att resultaten har en god grund.

(22)

16 • Definiera problem.

• Definiera målen med forskningen. • Designa och utveckla en artefakt.

• Demonstrera resultat, där man använder artefakt för att lösa problemet.

• Observera effektiviteten, och iterera tillbaka till design och utveckling vid behov.

Figur 6 beskriver hur vi anpassat designvetenskap för att passa vår problemställning. Vi började med att samla in relevant litteratur samt att hitta relevanta forskningsfrågor, vilket vi gjorde parallellt då vi ständigt sökte nya källor för att styrka forskningsfrågornas relevans. Nästa steg syftar till att formulera vårt regressionsproblem. En litteraturstudie gjordes parallellt även här för att den modell vi tog fram skall vara förankrad i existerande kunskap. I litteraturen finner vi hur metoder och teorier kan tillämpas för att kunna konstruera våra regressionsalgoritmer. Därefter samlade vi in nödvändiga data, det vill säga en tidsserie cykelflödesdata från cykelbarometern på Kaptensgatan i Malmö, som erhölls från Malmö stad, samt väderdata från SMHI [21]. Därefter de bearbetades insamlade data inför våra experiment; exempelvis tog vi bort felaktiga värden från vår tidsserie cykelflödesdata. Därefter utförde vi experiment och utvärderade de olika regressionsmetoderna för att sedan identifiera den regressionsalgoritm som har bäst förmåga att prediktera antalet cyklister under nästkommande dag.

(23)

17

Vi har valt att göra vissa modifikationer av den designvetenskapliga metoden (se Figur 6) för att den skall passa vår problemställning. Vi ansåg att följande sex steg var lämpliga för att besvara våra forskningsfrågor. Anledningen att dubbelriktade pilar används mellan steg 1 och steg 3 är att vi undersökte vilka parametrar som varit viktiga. Vi använder oss även av en dubbelriktad pil mellan steg 4 och steg 3 i händelse av att någon ny parameter tillkommit. Den dubbelriktade pilen mellan steg 4 och steg 5 illustrerar hur vi i cykler förfinat den artefakt (regressionsproblem) vi utvecklat. Detta då vi efter vårt experiment ansåg att förbättringar av artefakten varit möjliga.

4.1 Identifiera och formulera problem

För att identifiera det problem som ska lösas i vår forskning studerade vi tidigare forskning. Kraven vi ställer på vår problemformulering var att den ska vara av intresse för till exempel en myndighet eller ett företag, problemet ska inte heller vara alltför specifikt och bör generaliseras för att göra det relevant för flera fall.

Litteratursökning är det främsta verktyget som kommer användas för att hitta meningsfulla forskningsfrågor, problemets beskrivning förbättras kontinuerligt under studiens gång för att säkerställa dess relevans. Vetenskapliga publikationer kommer även hjälpa oss att i senare steg designa vår artefakt.

Då vi hittat viktiga forskningsfrågor formulerade vi dessa så att syftet med studien tydligt ska framgå. Frågorna skall vara inom området som studien kommer basera sig på. Frågorna skall även beskriva målet vår studie har, vilka vägar vi kommer ta och vilka lösningar vi önskar att se. Vi har även undersökt vilka regressionsalgoritmer som är relaterade till våra forskningsfrågor samt vilka krav som ska ställas på dem. Vi kommer även begränsa oss till fåtal algoritmer som vi sedan kommer undersöka och avgöra vilka passar vår studie bäst.

4.2 Litteraturstudie

Vi började vår sökning i databaserna IEEEXPLORE, Google Scholar och Sciencedirect. Vi begränsade våra sökningar till vetenskapliga artiklar eller litterära verk såsom böcker.

Därefter hittade vi relaterade arbeten med hjälp av utvalda sökord och på så vis fick vi fram ett antal artiklar. För att gå vidare i vår sökning studerade vi referensavsnittet i artiklarna vi hittade med hjälp av ovanstående sökmotorer. För att avgöra relevansen av de identifierade artiklarna granskade vi dem först översiktligt för att se om de kan bidra till vår forskning. Vi begränsade vår litteratursökning till arbeten som behandlade regression av trafik men även regressionsmetodik. Litteratursökningen var även nyttig för att upptäcka de senaste teknikerna för vårt problem och för att hitta lösningen till eventuella hinder och svårigheter. Andra delen av vår litteraturstudie gick alltså ut på att hitta relevant material för att kunna genomföra våra regressionsexperiment.

(24)

18

4.3 Insamling och bearbetning av data

Vi började med att samla in cykeldata för Kaptensgatan (Malmö), som vi fick från Malmö Stad, sedan hämtade väderdata från SMHI [21]. Då all data var insamlad var vi tvungna att bearbeta den inför våra experiment och för att kunna formulera vårt regressionsproblem. Då den erhåller cykelflödesdata innehåller felaktiga datavärden måste vi finna ett sätt att eliminera eller korrigera dessa dagar. För att hitta de felaktiga värdena studerade vi var antalet cyklister vid en dag var noll (0), alltså de dagar som barometern varit ur funktion. Vi valde att ta bort dessa dagars data istället för att fylla dem med fiktiva data. Detta för att ge ett så realistiskt resultat som möjligt.

Vi behövde även normalisera de data som används som input av regessionsalgoritmerna. Detta för att göra parametrarna lika då regressionen körs. Variabler av större numeriskt värde ska inte vilseleda algoritmerna så att de har högre prioritet i prediktionerna variabler av mindre numeriskt värde. Vi kommer beskriva vår databearbetning och normalisering närmare i Avsnitt 5.2.

4.4 Formulering av regressionsproblem

Den artefakt vi tar fram är en regressionsmodell, där vi experimentellt utvärderar en variant av modellen. Vi hämtar dels information från litteraturen om liknande regressionsproblemformuleringar och sedan utvärderar vi experimentellt den valda varianten. Vi kommer börja med att forska i hur vår artefakt ska se ut samt bestämma vilka krav på funktionalitet som ska ställas för att kunna besvara våra forskningsfrågor. Då vi utvecklar vår artefakt kommer vår litteratursökning fortsätta, men denna gång är målet med sökningen att hitta konkreta mjukvarulösningar på våra regressionsproblem och hur vi på lämpligt sätt kan implementera en algoritm för att hitta avvikelser i de olika regressionsalgoritmerna. Det är i detta steg FF1 besvaras.

4.5 Design och genomförande av experiment

Experimentet består huvudsakligen av två delar:

1. Utvärdera vilken regressionsmodell som är bäst (det vill säga utvärdering av artefakt).

2. Analys av regressionsalgoritm och hur lång tidsserie historisk data som är bäst för prediktion.

Vi kommer observera modellen vi skapat i tidigare steg för att studera vilken regressionsalgoritm som lämpar sig bäst för att lösa vårt problem och sedan använda denna modell för att studera hur lång tidsserie historisk data som krävs för att uppnå god prediktionsprestanda. Vid observation kommer vi studera hur bra algoritmen är på att prediktera antalet cyklar, där det absoluta relativa felet kommer ge oss en bra indikation på hur väl algoritmen fungerar. Efter detta studerar vi även hur lång tid som är bäst för prediktion. När man kört färdigt experimentet utvärderar vi resultaten och väljer den bästa algoritmen. FF2 och FF3 besvaras i steg 5 och steg 6.

(25)

19

4.6 Analys

I detta steg beskrivs inledningsvis samtliga resultat av vår forskning utan analys, detta genom att till exempel presentera tabeller och grafer över hur bra de olika algoritmerna presterade genom att exempelvis granska det absoluta relativa felet, och hur mycket data som krävs för en bra prediktion. Detta följs av en analytisk del där vi dels besvarar de forskningsfrågor som ställs i Avsnitt 1.4 och dels tolkar våra experimentella resultat. Slutligen följs detta av en diskussion där framtida forskningsidéer beskrivs. I senare del analyserar vi våra resultat.

4.7 Verktyg

Vi använder oss av programspråket Python då det både är kraftfullt och enkelt att använda. Dessutom så finns det ett maskininlärningsbibliotek, nämligen Sci-kit learn som innehåller många värdefulla komponenter för att genomföra vår studie. Biblioteket innehåller metoder för samtliga regressionsalgoritmer vi kommer undersöka. Ett annat bibliotek som är värdefullt för oss är Pandas. Pandas innehåller komponenter för att hantera och bearbeta data, vilket är särskilt viktigt för oss då vi har en stor mängd data som vi kommer använda vid körning av våra algoritmer. Vi kommer även använda biblioteket Numpy och Matplotlib för att hantera beräkningar respektive rita grafer. Vi kommer även bygga ett datahanteringssystem för att exempelvis kunna spara “det absoluta relativa felet” för ett testfall.

(26)

20

5. Design och genomförande av experiment

Den första delen av detta avsnitt kommer beskriva de indataparametrar vi använt för vårt experiment (FF1). Efter detta kommer vi beskriva hur vi bearbetat data inför vårt experiment. För att sedan besvara de två resterande forskningsfrågorna måste vi hitta den bästa regressionsalgoritmen (FF2) samt den mest lämpliga tidsperioden av historisk data (FF3), för att sedan jämföra den procentuella avvikelsen mellan det faktiska antalet cyklar som passerat cykelräknaren och det predikterade resultatet regressionsalgoritmerna ger oss.

5.1 Regressionsproblem

Som utgångspunkt för vår formulering av regressionsproblemet har vi studerat litteraturen. Baserat på litteraturen valde vi att utgå från det regressionsproblem som presenteras av Holmgren m.fl. [4].

Vi har ett något annorlunda problem än Holmgren m.fl. har, då de som tidigare nämnt jämfört två regressionsproblem, med två olika målvariabler: ett problem där målvariablen är det absoluta antalet cyklar, och ett problem där man använder sig av en avvikelse från en långsiktig trenduppskattning av antalet cyklar som målvariabel. Holmgren m.fl. studerar främst prediktion under längre tidsperioder. De tog fram regressionskurvor som beskriver antalet cyklister för en hel säsong framöver men även ännu längre trendberäkningar, som kan sträcka sig över flera år. Baserat på den problemformulering som presenterats av Holmgren m.fl. kom vi fram till två regressionsproblemformuleringar för vårt problem. Båda problemformuleringarna har det absoluta antalet cyklar som målvariabel.

Vi testade följande två problemformuleringar nedan (R1 och R2). Där endast en variabel skiljer sig åt i de två experimenten.

• R1 = Samtliga parametrar i Tabell 1, förutom tid på året. • R2 = Samtliga parametrar i Tabell 1.

I R1 och R2 vill vi alltså studera om algoritmerna behöver en tydlig indikator för att beskriva årstiderna. Variabeln är ett flyttal som ligger inom intervallet (0, 1) där ett lågt värde på variabeln beskriver att det är tidigt på året och ett högt värde beskriver att det är sent på året. Tid på året förbättrade algoritmernas förmåga att prediktera nästkommande dag avsevärt, vilket beskrivs i mer detalj i Avsnitt 6.2.

Temperatur och nederbörd (se Tabell 1) är mycket viktiga faktorer för att prediktera cykeltrafik, vilket framgick av samtliga relaterade arbeten inom området.

Anledningen att veckodagen (måndag-söndag) är viktig för vår prediktion är att antalet cyklar fluktuerar kraftigt mellan veckodagarna. Mängden cykeltrafik är i regel högre under måndag till fredag än under helgdagar. Om man studerar den observerade datamängden ser man att det cyklar

(27)

21

mer än dubbelt så många under en typisk tisdag än vad det gör under en lördag. Ungefär samma princip gäller för klämdagar eller helgdagar. Även vid skoldagar kan man se att antalet cyklister ökar.

Parameter: Datatyp: Syfte:

Genomsnittlig temperatur Flyttal (Reella tal)

Ger algoritmen dagens genomsnittliga temperatur.

Nederbörd i genomsnitt över dagen

Flyttal (Reella tal)

Ger algoritmen dagens genomsnittliga nederbörd.

Måndag Boolesk

variabel

1 om dagen är en måndag, annars 0.

Tisdag Boolesk

variabel

1 om dagen är en tisdag, annars 0.

Onsdag Boolesk

variabel

1 om dagen är en onsdag, annars 0.

Torsdag Boolesk

variabel

1 om dagen är en torsdag, annars 0.

Fredag Boolesk

variabel

1 om dagen är en fredag, annars 0.

Lördag Boolesk

variabel

1 om dagen är en lördag, annars 0.

Söndag Boolesk

variabel

1 om dagen är en söndag, annars 0.

Skoldag Boolesk

variabel

1 om dagen är en skoldag, annars 0.

Helgdag Boolesk

variabel

1 om dagen är en helgdag, annars 0.

Klämdag Boolesk

variabel

1 om dagen är en klämdag, annars 0.

Tid på året Flyttal (Reella

tal)

Hjälper algoritmen att avgöra vilken årstid det är.

(28)

22

5.2 Databearbetning

Då vi beslutat om vilka variabler som ska ingå i våra regressionsmodeller behövde vi bearbeta vår indata för att producera data på önskad form. Vi har delat upp vår databearbetning i två steg, det vill säga filtrering av dåliga värden och normalisering. Detta kommer beskrivas mer i avsnitten nedan.

5.2.1 Filtrering av dåliga värde

Innan någon form av regression kan ske måste man först rensa data från felaktiga värden. I den cykelflödesdata vi fått från Malmö stad har cykelräknaren under vissa dagar varit ur funktion eller så har den räknat fel på grund av okända anledningar. Sådana dagar är relativt lätta att identifiera visuellt, och vi valde att ta bort alla datapunkter som har större avvikelser eller då räknaren varit avstängd och registrerat noll (0) cyklister. Vi har valt att helt utesluta dessa dagar då de kan förstöra regressionen genom att prediktera helt felaktiga värden vid dagar då exempelvis samma väderförhållande råder. En annan möjlig lösning var att fylla ut dessa dagar med egna imaginära värden, men vi menar att det ger ett mer realistiskt resultat om man tar bort dem helt. Detta då det finns en risk att de imaginära värdena som vi ersätter de felaktiga värdena med inte stämmer överens med hur de riktiga värdena ser ut och kan påverka algoritmernas prestanda negativt. Då vi har utfört filtrering lagrar vi de filtrerade värdena i en matris som vi kan arbeta vidare med i senare del.

Vi har även stött på dagar där algoritmen ger stora prediktionsfel. Exempelvis, predikterade algoritmen en dag att det kommer passera cirka 120 000 cyklister, vilket inte stämmer överens med verkligheten. Vi har byggt en algoritm som filtrerar även dessa dagar, det görs genom att upptäcka felet och rätta till det genom att ersätta det med värdet från föregående dagen. Detta gjordes endast vid dagarna som beskrivs i Tabell 2. Vi vill inte att en dag av 730 som predikteras fel ska öka genomsnittsfelet avsevärt mycket.

Antal dagar Datum

10

04/08/2008 – 13/08/2009

24

01/07/2009 – 23/07/2009

12

11/08/2009 – 23/08/2009

3

03/04/2011 – 06/04/2011

(29)

23

5.2.2 Normalisering

Vi behövde även normalisera de data som används som input i våra regressionsalgoritmer. Exempelvis kan antalet cyklister vara runt 9000 stycken och temperaturen kan ligga runt 20 °C, dessa två variabler är inom långt skilda numeriska områden. När vi sedan utför analysen, till exempel linjär regression, kommer det stora antalet cyklister naturligtvis att påverka resultatet mer på grund av sitt högre värde [11]. Men det betyder inte nödvändigtvis att antalet cyklister är en viktigare prediktor än temperaturen. Detta innebär att vi går genom all data och delar det på det största värdet (se Formel 2). Exempelvis, är den högsta temperatur som förekommer 28 °C, så genom att dela all temperaturdata med 28 så kommer vi normalisera temperaturdata, värdet kommer alltså ligga mellan intervallet från noll (0) till ett (1), vilket förbättrar prediktion. Detta gjordes även på övrig data för att vi ska kunna få bra värden då regression utförs.

Formel 2. Normalisering av temperatur.

5.3 Experimentdesign

Den övergripande idén bakom vårt experiment är att studera olika sekvenser av dagar med ett känt antal cyklister (det vill säga inlärningsdagar) där vi för varje av de studerade sekvenserna uppskattar hur väl de olika regessionsalgoritmerna lyckas prediktera antalet cyklar för nästkommande dag (det vill säga måldag). Grundtanken för att bemöta detta problem är att använda de senaste 730 dagarna för att träna en modell. Därefter används den tränade modellen för att förutsäga antalet cyklister för nästkommande dag. Genom att på ett systematiskt sätt variera måldag och sekvenserna av inlärningsdagar är målet att kunna identifiera dels vilken regressionsalgoritm som lämpar sig bäst för det studerade problemet (FF2) samt hur lång sekvens av inlärningsdagar som förväntas ge bäst prediktion av antalet cyklister för måldagen (FF3). För att studera de olika sekvenserna på ett effektivt sätt har vi valt att designa vårt experiment enligt Figur 7.

(30)

24 Figur 7. Experimentdesign för att besvara FF2 och FF3.

Vi testar de olika algoritmerna enligt Figur 7. Som tidigare nämnt börjar vi med att bearbeta och normalisera samtlig data. Sedan matade vi in de identifierade indatavariablerna (Tabell 1) som är aktuella för testet i algoritmen för att sedan påbörja prediktion av antalet cyklister. Prediktionen görs med hjälp av den regressionsalgoritm vi ämnar testa. För varje ny sekvens så flyttar vi startdagen ett steg. Detta gör att vi kan testa olika startdagar, vilket gör att den aktuella algoritmen inte har samma startdag för varje iteration. Efter att den har gått igenom alla sekvenser så beräknar vi det absoluta relativa felet för iterationen. Vid varje ny iteration så ökar vi mängden av inlärningsdagar för algoritmen. Slutligen avbildas absolutfelet för hela körningen, det vill säga när alla algoritmer är testade med hela datamängden, i en graf.

De sekvenser som testas i vårt experiment presenteras i tabellerna (se Figur 8). Som nämnts ovan genomför vi de kombinationer av tester som listas i Figur 8 för varje regressionsproblem (R1, R2) och för varje regressionsalgoritm. Då vi har noterat att den tidsserie cykelflödesdata som vi använde i vår studie fluktuerar ganska kraftigt över tid, valde vi att begränsa oss till enbart dagar under de första två åren. Användning av två års data anses även lämpligt för att ta hänsyn till olika årstider.

(31)

25

Figur 8. De olika tester som utförs.

När en körning är färdig så beräknas genomsnittet samt medianen av felet för hela körningen, (detta beskrivs mer i detalj i Avsnitt 5.6). Detta ger ett värde på hur bra algoritmen presterar med hjälp av träningsdagarna. Beräkningar av genomsnittet, samt medianen av felet kommer göras på varje körning, detta tills alla 730 körningar är klara. Då en körning är färdig sparas värdet av genomsnittligt fel samt medianfel. Då alla körningar är färdiga avbildas graferna med det genomsnittliga felet och medianfelet. Resultatet av detta presenteras i Avsnitt 6.1.

Anledningen att vi testar olika långa tidsserier är att de kan påverka prediktion på olika sätt, exempelvis behöver inte en längre tidsserie nödvändigtsvis förbättra algoritmens förmåga att prediktera. Orsaken är att om flödena förändras mycket över tid kan för gamla prediktionsdata istället försämra algoritmens förmåga att prediktera. Vid längre tidsserier kan den långsiktiga trenden för antalet cyklister förändrats. Detta betyder att en dag, vars antal cyklar kan predikteras någorlunda med hjälp av tidigare parametrar inte längre är relevanta även om samma förhållande råder. En teori som vi kommit fram till är att den långsiktiga cykeltrenden i Malmö förändrats, vilket vi kommer beskriva mer i detalj Avsnitt 7.4.

Vi varierar alltså inlärningsdagar och måldag på olika sätt för att kunna dra slutsatser kring våra forskningsfrågor.

5.4 Hitta den mest lämpliga tidsperioden

För att kunna skapa en stabil regression som kan prediktera antalet cyklister måste vi begränsa antalet dagar som används, detta för att följa cykeltrender på sådant sätt att gammal data inte finns med i regressionen. För att eliminera detta problem kommer vi att använda oss av ett så kallat “glidande fönster”. Ett “glidande fönster” innebär att vi begränsar hur många dagar algoritmen ska använda sig av för prediktion. Då vi erhållit resultatet av FF2 kan vi se hur många dagars historisk data det “glidande fönstret” skall innehålla. I Figur 9 beskrivs hur vi använder ett glidande fönster av 400 dagar för att prediktera resterande 2290 dagar. Experimentet börjar med att vi tränar det neurala nätverket med 400 dagar för att sedan prediktera nästkommande dag successivt för de resterande 2290 dagarna med det “glidande fönstret”.

(32)

26 Figur 9. Hitta tidsperioden

I Tabell 3 har vi skapat en illustration av hur det “glidande fönstret” ser ut. Tittar man på första iterationen så kan man se att algoritmen kommer att använda sig av 400 dagar som träningsdagar för att prediktera dag 401. Vid nästa iteration så kommer det glidande fönstret att ha förflyttats sig framåt med ett steg och man använder dag 2 till och med dag 401 som träningsdagar och dag 402 som prediktionsdag. Vid sista iterationen är dag 2500 till och med dag 2899 träningsdagar och dag 2900 är prediktionsdagen.

Iteration 1 22500

Träningsdagar Predikterad dagTräningsdagar Predikterad dag … Träningsdagar Predikterad dag

1-400 401 2-401 402 … 2500-2899 2900

Tabell 3. Exempel av det “glidande fönstret”.

Detta leder till att vi alltid har ett glidande fönster som kommer att hålla algoritmen uppdaterad på hur trenderna ser ut, vilket leder till en bättre prediktion. Resultatet av detta kommer visas i Avsnitt 6.4.

5.5 Konfigurationer av regressionsalgoritmer

Vi utför flera olika tester, som inte redovisas i rapporten, där vi justerar eller ändrar inställningarna för neuralt nätverk och stödvektormaskin. I detta avsnitt går vi in djupare på vilka inställningar vi har valt och varför. Linjärregression och trädbaserad regression har inga inställningar så vi bortser från dem i detta test.

(33)

27

5.5.1 Neuralt nätverk

Vi gjorde vissa förändringar från standardinställningarna för neuralt nätverk. Flera test kördes där vi testade diverse inställningar såsom gömda lager i nätverket (hidden_layer_sizes), vilken kärna (activation) och sättet algoritmen lär sig på (learning_rate). De resultat som vi avvisat redovisas inte i rapporten. Se Tabell 4 för de valde inställningarna för neuralt nätverk.

Inställning Värde hidden_layer_sizes 5 activation ‘identity’ solver ‘lbfgs’ learning_rate ‘adaptive’ max_iterations 100000 learning_rate_init 0.01 alpha 0.01

Tabell 4. Inställningar neuralt nätverk

5.5.2 Stödvektormaskin

Precis som ett neuralt nätverk så testas även flera olika inställningar för stödvektormaskinen. Detta för att anpassa inställningar till vårt scenario. De resultat som vi avvisat redovisas inte i rapporten. Se Tabell 5 för våra inställningar av stödvektormaskin.

Inställning Värde C 1 cache_size 200 epsilon 0.1 gamma ‘scale’ kernel ‘linear’ max_iteration 1 shrinking True tol 0.001 verbose False

(34)

28

5.6 Feluppskattning

Vi utför en feluppskattning för varje algoritm, iteration och sekvens. Detta uppnås genom att beräkna medianen och genomsnittet vid varje iteration av körningen. Felvärdena sammanställs i en graf då hela körningen är klar.

För att ta reda på medelvärdet av felet använder vi formeln nedan (se Formel 3). Här beräknas först medelvärdet av det predikterade antalet cyklar, sedan beräknas medelvärdet av det verkliga antalet cyklar. Detta för att sedan beräkna det absoluta relativa felet med hjälp av Formel 3, för att få ett medelvärde av felet.

Formel 3. Medelvärde.

5.7 Värsta möjliga prediktion - Utvärderingsmetod

Vi kommer även att använda oss av en genomsnittlig prediktionsmetod som vi kan jämföra våra slutresultat med. Med detta menar vi att man predikterar antalet cyklister genom att ta genomsnittet av några dagar innan predktionsdagen. Och eftersom antalet cyklister är en känd serie med värden, kan vi ta ett genomsnitt av några dagar innan och några dagar efter den dagen vi skall prediktera. Vi bestämde oss att ta 6 månader innan och 6 månader efter, alltså ett helt år. Eftersom vi tar ett år i genomsnitt så kommer den implicit representera alla de variabler som vi matar in i algoritmen, exempelvis temperatur och nederbörd. Den genomsnittliga prediktionsmetoden kommer användas som ett standardvärde som vi kan jämföra vårt slutresultat med. Det kommer ge oss en bra bild på hur väl den valda algoritmen fungerar.

(35)

29

6. Resultat

I detta avsnitt ämnar vi besvara våra forskningsfrågor. Vi har delat in svaren i tre olika delar (Fas 1 - 3). Detta beror på att vi ska kunna besvara samtliga forskningsfrågor separat för att ge läsaren ett tydligt svar på varje fråga. För att besvara våra forskningsfrågor kommer vi ta hjälp av de olika graferna i Avsnitt 6.1 (Resultat av regression med absolut relativt fel).

6.1 Resultat av regression med absolut relativt fel

För att ta fram datapunkterna i graferna (figur 10 - 17) ges ett exempel i Tabell 6. Exemplet gäller för genomsnittlig felberäkning av prediktion med hjälp av en (1) träningsdag. Vi beräknar även medianen av felet i Tabell 6. Detta tas fram med hjälp av experimentet i Avsnitt 5.3.

Körning 1

Träningsdata Testdata Feluppskattning

1 2 49% 2 3 37% 3 4 67% 4 5 69% 5 6 63% 6 7 34% 7 8 36% 8 9 44% ⁞ ⁞ ⁞ 729 730 59% Genomsnitt 46%

(36)

30

I samtliga figurer nedan presenteras medelvärdet av felet med hjälp av den blå linjen och medianen av felet med hjälp av den röda linjen. Varje algoritm testades med 730 sekvenser, detta beskriver alltså felmarginalen av varje iteration.

Graferna (se Figur 10 - 13) nedan visar resultat av regressionen med samtliga variabler exklusive tid på året.

Figur 10: Regression med stödvektormaskin (R1)

(37)

31 Figur 12: Regression med beslutsträd (R1)

(38)

32 Graferna nedan (Figur 14 - 17) visar resultat av regressionen med samtliga variabler inklusive tid på året.

Figur 14: Regression med stödvektormaskin (R2)

(39)

33

Figur 16: Regression med beslutsträd (R2)

(40)

34

6.2 Fas 1 - Regressionsproblemformulering (FF1)

Fas 1 beskriver hur vi valt ut de parametrar som ger en positiv inverkan på de olika regessionsalgoritmerna. Vi började först med att se till oss själva, vad spelar mest roll för mig om jag ska cykla eller inte? Temperatur och nederbörd var enligt oss de viktigaste faktorerna. Så vi började med att enbart använda temperatur och nederbörd som indatavariabler. Redan här kunde man se relativt goda resultat. När vi studerat cykelflödesdata såg vi att det fanns ett tydligt samband mellan antalet cyklister och veckodag. Därför bestämde vi oss för att lägga till den veckodag cykelflödesdata tillhör. Vi implementerade detta genom att lägga till en dag i taget, och sätta värdet till antingen sant (1) eller falskt (0) beroende på om det är den dagen den aktuella dagen eller inte.

Då detta var implementerat vände vi oss till andra studier för att styrka våra antagande, exempelvis Holmgren m.fl. [4]. De hade även introducerat andra variabler som visat sig vara värdefulla. Vi implementerade olika dagstyper uppdelade i tre kategorier: skoldag, helgdag och klämdag.

Slutligen bestämde vi oss för att även ta med tid på året som indatavariabel, eftersom detta också är en viktig faktor då cyklister kan ha sin cykel i förvar under vinterhalvåret. Vi kan se resultatet av detta om vi jämför Figur 11 och 15, vi kommer alltså ner från cirka 15 - 20% i genomsnittligt fel till 8 - 15% i genomsnittligt fel genom att lägga till tid på året.

Samtliga variabler som visat sig vara passande för regression av det studerade problemet redovisas i Avsnitt 5.1, Tabell 1.

6.3 Fas 2 - Vilken regressionsalgoritm lämpar sig bäst? (FF2)

Denna fas behandlar vilken regressionsalgoritm som bäst predikterar antalet cyklar. För att kunna avgöra vilken algoritm som lämpar sig bäst använder vi vår utvärderingsmetod (se Avsnitt 5.6). Genom att beräkna medianvärdet samt det genomsnittliga värdet av det absoluta relativa felet för varje regressionsmodell (se Figur 14–17) får vi ut ett felvärde för varje algoritm. Resultatet av detta ges i Tabell 7. Detta resultat säger oss att regression med ett neuralt nätverk är mest passande för vårt regressionsproblem. Efter samtliga tester bestämde vi oss för att använda neuralt nätverk som huvudalgoritm för att besvara FF3.

Regressionsalgoritm Genomsnitt (%) Median (%)

Neuralt nätverk 15.1 7.2

Träbaserad regression 16.7 8.9

Stödvektormaskin 52.8 23.9

Linjär regression 16.9 8.9

(41)

35

6.4 Fas 3 - Hur lång tidsperiod av historisk data behövs? (FF3)

Slutligen studerar vi hur många dagar algoritmen behöver för att kunna prediktera med störst tillförlitlighet. För att ta reda på detta studerade vi när grafen för neuralt nätverk (se Figur 15) når de bästa värdena. Vi observerade att man efter 400 dagar når cirka 15% genomsnittligt fel. För att styrka valet av ett 400 dagars långt fönster fortsätter vi vår regression till slutet av datamängden. Detta visas i Figur 18 nedan, där vi uppnår 10 – 13% i felmarginal. Vi utförde även ett test med metoden vi beskriver i Avsnitt 5.7 (sämsta möjliga prediktion), som är ett “baseline” test och vi ser att vår metod ger ett mycket bättre resultat än ”baseline” testet som ligger på 24–26% i felmarginal (se figur 19). I analysen (Avsnitt 7.4) kommer vi studera varför ett tidsfönster av 400 dagar är lämpligt för regression av denna typ.

Figur 18: Regression på neuralt nätverk där 400 träningsdagars har använts.

Figure

Figur 4. Illustration över ett neuralt nätverk från in-värde till utvärde.
Figur 5. Illustration över en regressionslinje dras med hjälp av en stödvektormaskin.
Figur 6 beskriver hur vi anpassat designvetenskap för att passa vår problemställning. Vi började  med  att  samla  in  relevant  litteratur  samt  att  hitta  relevanta  forskningsfrågor,  vilket  vi  gjorde  parallellt  då  vi  ständigt  sökte  nya  källo
Tabell 1. Indatavariabler för våra regressionsmodeller.
+7

References

Related documents

Ansvarig personal ska kunna hämta ut cyklar och tillbehör vid inköp samt i viss utsträckning få service för sina produkter, främst cyklar, på den aktuella orten..

produktutveckling, och hur man använder metoden där beskrivs i kapitel 4. Förklaringen till hur man ska använda push and pull för att ändra inställningen till cykling används

Myndighetsnämnden måste ha fått din skrivelse inom tre veckor från den dag då justerat protokoll med beslutet har satts upp på kommunens anslagstavla, annars kan ditt

Samtliga bilar har rött och alla cyklar och fotgängare har grönt under den så kallade allcykelfasen.. Grönvåg

När cykeln sattes i kontext och diskussionen övergick till det faktiska cyklandet var det en hög grad av gillande som yttrades i form av att cyklandet känns nyttigt både för

Trafikverket har tagit del av de förslag till förklaringar som förs fram i promemorian och instämmer i att det är angeläget att förklara de regler som finns för cyklar och

Ett fordon som är avsett att drivas med tramp- eller vevanordning och inte är ett lekfordon.. Ett eldrivet fordon utan tramp- eller vevanordning

Men fortfarande är det svårt eller dyrt att ta sig till och från arbete med buss eller kollektivtaxi, och cyklar finns ju, behöver bara rustas upp och tas i bruk. De är ju