• No results found

I denna uppsatts tittar vi p˚a hur olika machine learning algoritmer presterar n¨ar man f¨orutsp˚ar f¨orseningar i t˚agtrafiken

N/A
N/A
Protected

Academic year: 2021

Share "I denna uppsatts tittar vi p˚a hur olika machine learning algoritmer presterar n¨ar man f¨orutsp˚ar f¨orseningar i t˚agtrafiken"

Copied!
48
0
0

Loading.... (view fulltext now)

Full text

(1)

Kandidatuppsats

Civilingenjör i datateknik 300 hp

Förutse försenade tåg med machine learning

Examensarbete i datateknik 15 hp

Halmstad 2018-09-16

(2)
(3)

Sammanfattning

This thesis investigates the performance of predicting train delays with diffe- rent machine learning algorithms. The machine learning algorithms that are studied and presented in this thesis are logistic regression, decision tree and neural network. We have tried to implement all of the above algorithms with the data that is collected by ourselves into our own database with the help of asttrafiks open API. A brief description on our data that has been collected is presented, the fundamentals of the algorithms and general information about machine learning is presented. The algorithms are compared to each other and their performance are shown with the help of AUC score and a confusion matrix.

I denna uppsatts tittar vi p˚a hur olika machine learning algoritmer presterar ar man f¨orutsp˚ar f¨orseningar i t˚agtrafiken. Machine learning metoderna som tas upp i denna rapport ¨ar logistic regression, decision tree och neural network.

Vi har f¨ors¨okt implementera alla tre ovan n¨amnda metoderna med data som vi sj¨alva har samlat in till v˚ar egen databas med hj¨alp av V¨asttrafiks ¨oppna API. En beskrivning p˚a data som har samlats in diskuteras, grundl¨aggande genomg˚ang av de olika metoderna och generell information om vad machine learning ¨ar. Metoderna st¨alls upp mot varandra och dess prestation visas upp med hj¨alp av AUC po¨ang samt confusion matrix.

(4)
(5)

Inneh˚all

1 Inledning 1

1.1 Syfte & m˚al . . . . 1

1.2 Problemformulering . . . . 2

1.3 Avgr¨ansningar . . . . 2

2 Bakgrund 3 2.1 Industriella produkter . . . . 3

2.1.1 Reseplanerare & trafikinfo . . . . 3

2.1.2 Google Maps, Din Tidslinje . . . . 4

2.1.3 Flygbolag varnar vid f¨orseningar . . . . 4

2.2 Relaterade arbeten . . . . 4

2.2.1 Machine learning . . . . 4

2.2.2 Andra metoder . . . . 9

3 Metod 11 3.1 Projektets faser . . . . 11

3.1.1 Utbildningsfas . . . . 11

3.1.2 Utf¨orandefas . . . . 11

3.1.3 Utv¨arderingsfas . . . . 11

3.2 Beslut . . . . 12

3.2.1 Val av kollektivtrafik . . . . 12

3.2.2 Val av data . . . . 12

3.2.3 Java . . . . 13

3.2.4 Python . . . . 13

3.2.5 Anaconda . . . . 13

3.2.6 Tensorflow . . . . 13

3.2.7 Versionshanetring . . . . 13

3.2.8 Databas . . . . 14

3.2.9 Supervised Machine Learning . . . . 14

3.3 Teori . . . . 14

3.3.1 Neural Network . . . . 14

3.3.2 Decision tree . . . . 16

3.3.3 Logistic regression . . . . 17

3.3.4 ROC kurva . . . . 19

(6)

3.3.5 AUC . . . . 20

3.3.6 Confusion Matrix . . . . 21

4 Resultat 23 4.1 Analys av data . . . . 23

4.1.1 Linjer . . . . 23

4.1.2 Stationer . . . . 24

4.1.3 Veckodagar . . . . 25

4.1.4 Resetider . . . . 26

4.1.5 Fortsatta f¨orseningar . . . . 27

4.2 Utv¨ardering av algoritmer . . . . 27

4.2.1 Logistic regression . . . . 27

4.2.2 Decision tree . . . . 28

4.2.3 Neural network . . . . 30

5 Diskussion 33 5.1 Fortsatt arbete . . . . 36

Litteraturf¨orteckning 37

A Tidsplan 39

(7)

Akronymer

API Application Programming Interface.

AUC Area Under Curve.

CM Confusion Matrix.

DT Decision Tree.

FN Falsk-Negativ.

FP Falsk-Positiv.

HL Hidden-Layer.

IL Input-Layer.

LR Logistic Regression.

ML Machine Learning.

MSE Mean Squared Error.

NN Neural Network.

OL Output-Layer.

ROC Receiver Operating Characteristics.

SML Supervised Machine Learning.

SN Sann-Negativ.

SP Sann-Positiv.

UML Unsupervised Machine Learning.

(8)
(9)

Kapitel 1

Inledning

Den regionala och lokala kollektivtrafiken har under 2005-20151¨okat med 32%.

Denna statistik visar att antalet p˚astigningar ¨okat varje ˚ar utan nedg˚ang. Ett linj¨art beteende som allts˚a g˚ar upp˚at. Enligt resvaneunders¨okningen fr˚an peri- od 2015-20162 stod kollektivtrafiken f¨or 22.1% av resorna d¨ar det huvudsakliga

¨arendet var arbets-, tj¨anste- och skoleresor. J¨amf¨ort med tidigare period 2011- 20123 har arbets-, tj¨anste- och skoleresor ¨okat i kollektivtrafiken med 22.16%.

Anv¨andadet av kollektivtrafiken som transportmedel har allts˚a ¨okat generellt och ¨aven bland de som har viktiga tider att f¨orh˚alla sig till. I projektet kommer det utv¨arderas om en Machine Learning (ML) algoritm kan kunna f¨oruts¨aga orseningar i den kollektiva trafiken som sedan kan anv¨andas f¨or att varna anv¨andaren f¨or eventuella f¨orseningar i f¨orebyggande syfte att anv¨andaren inte kommer att bli f¨orsenad.

1.1 Syfte & m˚al

Syftet med detta projekt ¨ar att se ifall en ML algoritm kan anv¨andas f¨or att orutse f¨orseningar i den kollektiva trafiken. Ett bra resultat p˚a projektet skulle kunna leda till en l¨osning f¨or resen¨arer och resebolag att g¨ora kollektivtrafiken mer p˚alitlig, vilket skulle vara positivt. Med ML algoritmer kommer det allts˚a att unders¨okas ifall man kan f˚a en tillr¨ackligt bra noggrannhet p˚a f¨oruts¨agelsen av f¨orseningar i dess f¨orebyggande syfte. Data kommer samlas in fr˚an V¨asttrafik som har ¨oppet Application Programming Interface (API)4 med information om deras resor i realtid. Projektetgruppen har inget samarbete med V¨asttrafik och kommer d¨arf¨or inte tilldelas ett f¨ardigt dataset, utan data kommer enbart

1https://www.trafa.se/globalassets/statistik/kollektivtrafik/kollektivtrafik/

2009-2015/2015/kollektivtrafik-2015.pdf

2https://www.trafa.se/globalassets/statistik/resvanor/2016/rvu_sverige_

2016-reviderad-7-juli.pdf

3https://www.trafa.se/globalassets/statistik/resvanor/2016/rvu_sverige_

2016-reviderad-7-juli.pdf

4https://developer.vasttrafik.se

(10)

amtas fr˚an deras API. Informationen ¨ar tillg¨anglig f¨or allm¨anheten vilket ocks˚a betyder att den kan vara n˚agot begr¨ansad i detaljer kring resorna. Projektets al blir allts˚a att kunna se vilka resultat ML kan uppn˚a med den allm¨anna informationen fr˚an deras API.

1.2 Problemformulering

Applikationer som finns tillg¨angliga idag f¨orutsp˚ar inte f¨orseningar, den varnar ar f¨orseningen redan har skett. Kan ML l¨osa problemet och f˚a en bra nog- grannhet p˚a sin f¨oruts¨agelse? Finns det n˚agon relation mellan f¨orseningarna och annan data som t.ex. tidpunkt, station eller tidigare f¨orseningar? Om ML kan hitta en relation kan ¨aven trafikbolag anv¨anda sig av ML f¨or att f¨orutsp˚a orseningar och ˚atg¨arda problemen f¨or att f¨orhindra f¨orseningar i st¨orsta m¨ojliga utstr¨ackning.

• Vad finns det f¨or liknande produkter p˚a marknaden idag?

• Har V¨asttrafiks API tillr¨acklig data?

• Vilka modeller finns f¨or att utv¨ardera data?

• Vilken typ av ML kan l¨osa v˚art problem? Supervised Machine Learning (SML) eller Unsupervised Machine Learning (UML)?

• Hur mycket samplingsdata beh¨over man f¨or att uppn˚a en bra modell?

• Finns det n˚agon vetenskaplig forskning f¨or den valda modellen?

• Vilka sv˚arigheter har identifierats av andra l¨osningar?

• Kommer de f¨orutsp˚adda f¨orseningarna st¨amma ¨overens med hur verklig- heten ter sig?

• Vilket/vilka programmeringsspr˚ak ska anv¨andas?

• Hur ska de olika modellerna testas?

• Vad finns det f¨or f¨or-/nack-delar med den valda modellen?

1.3 Avgr¨ansningar

• Bara resor i V¨asttrafik.

• Det finns m˚anga bussar och t˚ag i V¨asttrafik. Vi kommer inte kolla alla linjer.

• Vi kommer anv¨anda oss av ML f¨or att f¨oruts¨aga f¨orseningar.

(11)

Kapitel 2

Bakgrund

Projektgruppen ¨ar tv˚a studenter som studerar p˚a H¨ogskolan i Halmstad till Ci- vilingenj¨or i datateknik. Id´en f¨or projektet uppkom d˚a b˚ada reser till och fr˚an skolan kollektivt och har ¨over tv˚a ˚ars tid upplevt att f¨orseningar f¨orekommer med j¨amna mellanrum vilket har resulterat till missade f¨orel¨asningar etc. Ef- ter diskussion om problemet funderades det ¨over om det skulle kunna finnas en l¨osning och hur man skulle kunna g˚a tillv¨aga. H¨ar uppkom sj¨alva id´en att med hj¨alp ML kunna f¨orutse f¨orseningar och undvika att bli f¨orsenad.

orhoppningsvis ocks˚a att i slut¨andan uppmuntra fler personer till att anv¨anda sig av den kollektiva trafiken.

2.1 Industriella produkter

2.1.1 Reseplanerare & trafikinfo

Sk˚anetrafiken1 och V¨asttrafik2 har b˚ada utvecklat tj¨ansten att kunna resepla- nera. Anv¨andaren l¨amnar information om vart resan ska b¨orja, vart resan ska sluta, vilket datum och vilken tid resan avg˚ar eller n¨ar man ska ankomma till slutdestinationen. Informationen anv¨andaren f˚ar tillbaka ¨ar f¨orslag p˚a n¨ar och vilket s¨att som resan kommer att ske, om resan existerar. B˚ada resebolagen har

¨oppna API:s d¨ar samma funktioner/data kan tillhandah˚allas som deras resepla- nerare har, vilket skulle ge projektets applikation m¨ojlighet att nyttja dessa vid reseplanering. Detta s¨att av planering sker dock manuellt av att anv¨andaren uppger information om resan vid varje resetillf¨alle. D¨ar applikationens tanke ¨ar att ¨aven den processen ska automatiseras med hj¨alp av anv¨andarens kalender.

Resebolagen har ocks˚a trafikinformation t.ex. om det ¨ar v¨agarbeten eller and- ra faktorer som p˚averkar i kollektivtrafiken. De visar ¨aven vid information om en buss eller ett t˚ag skulle vara f¨orsenat i reseplaneraren. Detta bygger helt

1https://www.skanetrafiken.se/sok-resa/

2https://www.vasttrafik.se/reseplanering/

(12)

a real-tidsinformation fr˚an bussens eller t˚agets nuvarande position och ing- en f¨oruts¨agelse fr˚an historisk data. All denna information m˚aste s¨okas upp av anv¨andaren sj¨alv i eget intresse att komma i tid.

2.1.2 Google Maps, Din Tidslinje

Google har utvecklat en funktion i deras applikation Google Maps som heter Din Tidslinje. I tj¨ansten uppger anv¨andaren vart denne arbetar, vilka tider hen ˚aker dit och hem. Applikationen tar inte emot ett flexibelt schema fr˚an en kalender utan ett fast schema fr˚an anv¨andarens inmatning. Visning av f¨orseningar ¨ar begr¨ansade, i vilken utstr¨ackning ¨ar oklart eftersom Google sj¨alva inte uppger detta eller vart dom f˚ar informationen ifr˚an. Ingen f¨oruts¨agelse av f¨orseningar i kollektivtrafiken finns heller implementerad, utan ger anv¨andaren notiser om att bussen eller t˚aget anv¨andaren ska ta till eller fr˚an arbetet g˚ar om X antal minuter.

2.1.3 Flygbolag varnar vid f¨orseningar

Flygbolag som Norwegian har funktionen att vid inst¨allda eller f¨orsenade flyg s˚a varnas anv¨andaren med sms till angivet mobilnummer vid bokning3. Norwegian har ¨aven utvecklat en applikation som ist¨allet ger anv¨andaren realtidsinforma- tion om hens flygresor och ger notiser om de skulle bli f¨orsenade.

2.2 Relaterade arbeten

Att f¨oruts¨aga ankomsttider ¨ar inte en helt enkel process. Inga modeller kan ge ett resultat som ter sig exakt som verkligheten, utan h¨ar anv¨ands olika algoritmer or att f˚a ett s˚a n¨ara resultat som m¨ojligt. Eftersom det inte finns ett exakt svar a fr˚agan s˚a finns det m˚anga arbeten med olika tillv¨agag˚angss¨att p˚a hur en bra modell kan se ut. Det har valts ut ett antal arbeten till projektet som kan vara av intresse.

2.2.1 Machine learning

ML ¨ar mycket anv¨andbar i m˚anga syften, man kan anv¨anda det f¨or att f¨oruts¨aga hur b¨orsen eller aktier kommer att se ut i framtiden med hj¨alp av historisk data, analysera handskriven text och l¨ara datorn att tolka denna text f¨or att sedan skriva texten p˚a datorn, identifiera bilder, taligenk¨anning, m.m. Det finns olika algoritmer man kan anv¨anda sig av inom ML beroende p˚a vad man vill att datorn ska analysera och f¨oruts¨aga. Algoritmer som ¨ar av intresse kommer att unders¨okas i projektet.

3https://www.norwegian.com/se/reseinformation/installda-flygresor/

forsenade-flygresor/

(13)

Supervised machine learning

SML eller ” ¨Overvakat maskinl¨arande”¨ar det vanligaste tillv¨agag˚angss¨attet n¨ar man anv¨ander sig av ML. Genom att f˚a inmatningsdata X s˚a mappas data till ett k¨ant m˚al utdata Y som oftast ¨ar best¨amd av m¨anniskor sj¨alva. Sambandet kan enkelt f¨orklaras med formel Y = f (X). Det kallas ¨overvakat l¨arande d˚a processen d¨ar algoritmen l¨ar sig hur den ska hantera indata ¨ar ¨overvakat av en arare. Den vet redan vilket m˚al indata ska till. Efter att algoritmen har f˚att g¨ora sin f¨oruts¨agelse s˚a kommer l¨araren att se om algoritmens f¨oruts¨agelse st¨ammer

¨overens med det korrekta svaret [1]. Algoritmerna som kan anv¨andas ¨ar m˚anga och deras styrkor och svagheter varierar. De b¨or allts˚a anpassas efter syftet.

Figur 2.1: Diagram p˚a hur SML fungerar

Unsupervised machine learning

UML handlar om att hitta intressanta transformationer av indata utan n˚agon hj¨alp av n˚agra m˚al, dvs n¨ar man endast har inmatningsdata X och inte n˚agon motsvarande utdata Y , f¨or ¨andam˚alet av data visualisation, data komprimering eller f¨or att b¨attre f¨orst˚a relationerna mellan datan som man har tillg¨angligt.

Oftast anv¨ander man sig av UML f¨or att b¨attre f¨orst˚a datan man har innan man ors¨oker l¨osa ett SML problem [1]. Till skillnad fr˚an SML s˚a finns det inte n˚agot korrekt svar och det finns heller inte n˚agon l¨arare som kan r¨atta till algoritmen or att ge ett mer korrekt svar, dvs att man l˚ater algoritmen arbeta f¨or sig sj¨alv or att uppt¨acka och presentera den intressanta strukturen i datan.

(14)

Figur 2.2: Diagram p˚a hur UML fungerar UML kan grupperas vidare till kluster och association problem.

• Kluster: Ett klusterproblem ¨ar d¨ar du vill hitta ¨arvande grupperingar i data som att kunna gruppera kunder och deras handelsvanor.

• Association: Ett associations l¨arningsproblem ¨ar n¨ar du vill hitta m¨onster som beskriver stora portioner av datan tillg¨anglig som t.ex. kunder som oper vara X tenderar till att k¨opa vara Y .

Arbeten med machine learning

Artikeln ”Railway passenger train delay prediction via neural network model”

[2] anv¨ander SML, och Neural Network (NN) utv¨arderas fr¨amst i artikeln f¨or att f¨ors¨oka f¨orutse f¨orseningar p˚a t˚ag i Iran. I artikeln unders¨oks tre olika me- toder f¨or att definiera input-datan till n¨atverket: normaliserade real v¨arden, binary-coding och binary set encoding. D¨arefter l¨aggs det ¨aven p˚a ytterligare tre olika tr¨aningsmetoder till vardera input-metod f¨or att j¨amf¨ora snabbare eller angsammare tr¨aningstider. Dessa metoder kallas snabb-, dynamisk- och multi- pel metod. Den snabba metoden anv¨ander sig av ett minamalt antal noder i ett Hidden-Layer (HL) f¨or att f˚a ner tr¨aningstiden. De andra tv˚a tr¨aningsmetoderna ar ut p˚a att n¨atverket testar sig av olika storlekar p˚a antal noder och HL f¨or att hitta b¨ast accuracy.

Dessa NN j¨amf¨ors sedan med andra vanligt f¨orekommande algoritmer som Decision Tree (DT) och Logistic Regression (LR). Resultatet visade att det oreslagna NN gav mycket b¨attre resultat ¨an de andra algoritmena. De tre olika input metoderna visade inga st¨orre skillnader. Det b¨asta resultatet gavs av att anv¨anda sig av binary-encoding med snabb tr¨aningsmetod vilket gav en accura- cy p˚a 92.18%. Nackdelen var att det tog l¨angst tid f¨or att tr¨ana detta n¨atverket.

DT gav en accuracy p˚a 64.42% och LR 63.71%. DT hade snabbast tr¨aningstid och LR var fj¨arde snabbast av elva m¨ojliga.

I rapporten ”Application of Machine Learning Algorithms to Predict Flight Ar- rival Delays” [3] anv¨ander f¨orfattarna f¨oljande SML algoritmer: DT, LR och NN or att f¨orutsp˚a f¨orsenade ankomster f¨or inrikesflygen i USA. Det dataset som

(15)

orfattarna anv¨ander sig av ¨ar fr˚an Kaggle4och finns tillg¨anglig f¨or allm¨anheten, det inneh˚aller data f¨or ˚ar 2015 med ¨over 5 miljoner exempel och 30 parametrar.

Utav de 5 miljoner exempel som fanns valde f¨orfattarna att anv¨anda 100000 or att tr¨ana och testa de tre algoritmerna, med en rekommenderad splittring- en 70-30 mellan tr¨aningsdata och testdata. Med hj¨alp av DT algoritmen fick man fram vikterna f¨or alla parametrar, allts˚a deras avg¨orande betydelse f¨or oruts¨agelserna, och f¨orfattarna kom fram till att det endast var tre parametrar som hade st¨orre betydelse f¨or f¨oruts¨agelserna.

Alla algoritmerna presterade likv¨ardigt och fick samma AUC po¨ang 0.96 med n¨astintill identiska precision och recall v¨arden. Precision och recall f¨or de orsenade f¨oruts¨agelserna fr˚an varje algoritm som f¨orfattarna fick ¨ar f¨oljande:

Tabell 2.1: Algoritmernas resultat fr˚an artikel [3]

Algoritm AUC Precision Recall

LR 0.96 0.92 0.89

DT 0.96 0.93 0.88

NN 0.96 0.91 0.90

orfattarna av artikeln ”Cloud Based Flight Delay Prediction using Logistic Regression” [4] anv¨ander LR (SML) f¨or att f¨oruts¨aga avg˚angsf¨orseningar bland flygresor. De anv¨ander sig av Microsoft Azure Learning Studio f¨or att tr¨ana och testa modellen i molnet. De har ¨aven tagit v¨aderinformation i ˚atanke f¨or att se ifall v¨adret har n˚agon p˚averkan p˚a f¨orseningarna. Resultatet de fick var en accuracy p˚a ungef¨ar 80%, men ROC kurvan f¨or deras implementation s˚ag inte a bra ut vilket gav dem ett l˚agt AUC-v¨arde. De beskriver i slutsatsen att en anledning till ett halvbra resultat kunde bero p˚a att de viktiga orsakerna till att f¨orseningar sker kanske var parametrar som inte fanns med i deras dataset.

I arikeln ”A New Method to Alarm Large Scale of Flights Delay Based on Machi- ne Learning” [5] anv¨ander de sig f¨orst av UML p˚a datan insamlad fr˚an flygplat- sen f¨or att f˚a fram de olika klasserna av avvikelse, dessa klasser framf¨ors efter arningsperioden f¨or algoritmen. N¨ar de v¨al har f˚att fram klasserna anv¨ander de sig av SML p˚a denna datan f¨or att bygga en varnings modell. Eftersom det finns m˚anga likheter av datan grupperas de olika f¨orseningsklasserna med likheter med hj¨alp av klustering. Klustering ¨ar en UML process som n¨amndes tidigare, eftersom det inte finns n˚agra f¨ordefinerade klasser och inga exempel p˚a vilken typ av ¨onskv¨ard relation det b¨or finnas med datan ¨ar detta ett kluster problem [6]. F¨or att f¨orenkla problemet anv¨ands k -Means algoritm f¨or kluste- ringen och parametern ¨ar endast antal kluster.

Artikeln ”Iterative Machine and Deep Learning Approach for Aviation

Delay Prediction” [7] handlar ocks˚a om hur man kan f¨orutse f¨orseningar i flyg-

4https://www.kaggle.com/

(16)

branschen. H¨ar anv¨ands ocks˚a SML f¨or att f˚a fram resultat, men p˚a ett n˚agot annorlunda s¨att. Efter att de fick sitt dataset skalades denna ner n˚agot och det valdes ut information som inte var missvisande utan verklighetstrogen data.

Detta gjordes dels p˚a grund av f˚a fram riktig data men ¨aven spara p˚a resur- ser som den begr¨ansade processorkraft de hade i unders¨okningen och det var helt enkelt f¨or mycket data ursprungligen. De f¨orklara vidare att fr˚an detta processade dataset var det 6 attribut som utm¨arkte sig vid f¨orseningar:

Veckodag

1. 2. Ankomsttid 3. Avg˚angstid

Tidsf¨orbrukning

4. 5. orseningstid 6. Distans

orfattarna skriver ocks˚a i deras litter¨ara unders¨okning av andras arbeten att dessa attribut kan tas fram med hj¨alp av OneR-algoritmen. N¨ar attribut och dataset var valt tr¨anades detta p˚a NN och deep belief network d¨ar den orv¨antade utdatan var bin¨ar (SML) p˚a f¨oljande s¨att:

0 = Inte f¨orsenad

a) b)1 = F¨orsenad

De anv¨ande sig av resilient backpropagation f¨or att optimera sitt NN. Det justerar felet i n¨atverket som i slut¨andan avg¨or vad den givna indata kommer att ge f¨or utdata, 0 eller 1. Resilient backpropagation ¨ar en p˚abyggnad av vanlig backpropagation och som till sin f¨ordel g˚ar mycket snabbare att anv¨anda sig av ar man ska tr¨ana n¨atverket enligt f¨orfattarna. F¨or att testa n¨atverket och dess noggrannhet gav man n¨atverket test data som n¨atverket inte hade f˚att tr¨ana a. De testade ¨aven att ¨andra p˚a antalet lager och noder bland HL. Det som gav b¨asta resultatet var att anv¨anda sig av 1 layer och 3 noder i denna. Detta gav en f¨oruts¨agelse p˚a 92% om flygen skulle bli f¨orsenade eller inte.

Figur 2.3: Illustration av f¨oreslagen modell fr˚an artikel [7]

(17)

2.2.2 Andra metoder

Det finns andra metoder man kan anv¨anda sig av ut¨over machine learning. I artikeln ”Forecasting algorithm of time arrival with statistical data using based on the principle of templates selection” [8] anv¨ander de sig av en enklare metod som inte ¨ar ML och resultatet de fick fram var r¨att s˚a bra. F¨oljande figur ¨ar tagen fr˚an artikeln som illustrerar hur metoden presterar gentemot verkligheten.

Figur 2.4: J¨amf¨orelse av f¨oruts¨agelsen mot den verkliga h¨andelsen [8]

Denna metod anv¨ander sig av en matematisk modell med flertalet olika para- metrar f¨or att kalkylera ankomsttid, det man kan g¨ora med denna matematiska modell ¨ar: Z = f¨orutsagd ankomsttid, Y = verkliga ankomsttid och X = Z − X vilket ger oss att X = f¨orutsagd f¨orsening om X > 0. En av parametrarna som anv¨ands i denna matematiska modell ¨ar B som ¨ar en konstant 1 ≥ B > 0, denna konstant fastst¨aller trafikbelastningen och kan ¨andras beroende p˚a vilken tid p˚a dagen det ¨ar f¨or att f˚a fram en mer nogrann f¨oruts¨agelse av ankomsttiden.

(18)
(19)

Kapitel 3

Metod

3.1 Projektets faser

Projektet kommer delas upp i olika faser f¨or att det ska bli praktiskt och finnas en struktur. Det b¨orjar med en utbildningsfas, utf¨orandefas, och utv¨arderingsfas.

3.1.1 Utbildningsfas

I denna fas kommer det att lyftas fram vad man har studerat f¨or att uppn˚a projektets m˚al, dvs. de metoderna, algoritmerna och programmeringsspr˚ak som kan vara av intresse. Hur man ska utv¨ardera de olika algoritmernas resultat p˚a given data. H¨ar kommer andra arbeten kring f¨orseningar att unders¨okas f¨or att kunna nyttja den informationen som redan finns kring ¨amnet

3.1.2 Utf¨orandefas

ar kommer programmeringen av projektet utf¨oras. Upps¨attning av att h¨amta och spara ner data till en databas. Det kommer ¨aven programmeras med ML algoritmer fr˚an befintliga bibliotek.

3.1.3 Utv¨arderingsfas

Under utv¨arderingsfasen kommer det utv¨arderas vilken ML modell som fungerar ast till v˚art syfte. Vi kommer att anv¨anda tr¨aningsdata f¨or att l¨ara v˚ar modell och sen ¨aven anv¨anda testdata f¨or att utv¨ardera hur v¨al dessa modeller prestera.

Aven andra verktyg f¨¨ or utv¨ardera algoritmerna kommer anv¨andas h¨ar.

(20)

3.2 Beslut

I den h¨ar delen av rapporten f¨orklaras vilka beslut som har tagits kring projektet.

Vilka v¨agval som har gjorts och f¨orklaring p˚a vad dessa inneb¨ar.

3.2.1 Val av kollektivtrafik

Det har varit tv˚a resebolag fr˚an b¨orjan som varit av intresse till projektet att amta data fr˚an: V¨asttrafik och Sk˚anetrafiken. B˚ada resebolagen har ¨oppna API:er d¨ar man gratis kan h¨amta information om deras resor i realtid. Ingen av dessa API:er erbjuder att kunna h¨amta historisk data vilket betyder att man inte kan se bak˚at i tiden huruvida resorna har varit f¨orsenade eller inte. Detta g¨or att data m˚aste loggas i realtid och samlas in f¨or att kunna anv¨andas till projektet.

Efter j¨amf¨orelse av de tv˚a resebolagens API:er konstateras att V¨asttrafik har en b¨attre plattform som ¨ar mer utvecklad och enklare att anv¨anda. V¨asttrafik kan skicka gensvar i JSON och har tydliga instruktioner som g¨or det enklare or projektdeltagarna som saknar tidigare erfarenheter med API:er. En annan ordel med V¨asttrafik var att man p˚a ett enkelt s¨att kunde logga f¨orseningar station f¨or station och inte bara start- och slutstation p˚a en resa.

3.2.2 Val av data

Urvalet hos V¨asttrafik har ocks˚a begr¨ansats d˚a det finns m˚anga linjer och det har valts ut 61 stycken som ¨ar pendel eller t˚ag. Parametrar som loggats och kan vara till anv¨andning ¨ar:

VasttrafikTripID - ID p˚a de olika linjerna.

Date - Datum p˚a resan.

Distance - Resans distans.

totalTime - Resans totala tid.

weekday - Veckodag.

departureTime - avg˚angstid.

arrivalTime - ankomsttid.

delayed - Om resan ¨ar f¨orsenad.

delay - F¨orseningstid.

cancelled - Om resan ¨ar inst¨alld.

stopID - Vilken station.

Ut¨over detta har ocks˚a tiderna alternativt f¨orseningarna loggats f¨or alla statio- ner och resor i realtid.

(21)

3.2.3 Java

asttrafiks ¨oppna API fungerar med m˚anga olika programmeringsspr˚ak. F¨or- fattarna i detta projektet har en st¨orre erfarenhet i Java fr˚an tidigare kurser och kommer d¨arf¨or att anv¨anda sig av detta f¨or att jobba mot API:t. V¨asttrafiks API anv¨ander sig av OAUTH21autentisering f¨or att kunna g¨ora anrop till deras API. H¨ar kommer ett flertal bibliotek utvecklade av Google2 anv¨andas f¨or att amta accesstokens (Autentiserings nyckel). Med dessa nycklar kan man sedan skapa GET anrop till API:t f¨or att helt enkelt g¨ora anrop p˚a vilken data man vill ha fr˚an dem. Utvecklingsmilj¨on som kommer anv¨andas f¨or Java ¨ar Eclipse.

Maven kommer att anv¨andas f¨or att slippa l¨agga till biblioteken p˚a ett lokalt att.

JSON-bibliotek kommer att anv¨andas i V¨asttrafiks API d˚a de har st¨od f¨or att kunna skicka gensvar i JSON-format ist¨allet f¨or XML. Det g˚ar snabbare att parsa information med JSON ¨an XML.

3.2.4 Python

Python ¨ar ett objektorienterad programmeringsspr˚ak med ett rikt standardbib- liotek samt andra kraftfulla bibliotek som anv¨ands f¨or ML. St¨orsta anledningen till varf¨or Python anv¨ands ¨ar p.g.a. att man kan enkelt interagera med databa- sen, skapa dataramar som anv¨ands vid tr¨aning av de olika algoritmerna och ett rikt bibliotek med ML algoritmer. Python har ¨aven bra bibliotek f¨or visualise- ring vilket ¨ar h¨andigt n¨ar man ska utv¨ardera algoritmerna.

3.2.5 Anaconda

Anaconda3 ¨ar en gratis och open-source distribution av Python som anv¨ands or datavetenskap och machine learning relaterade applikationer vars m˚al ¨ar att orenkla pakethanteringen. Med hj¨alp av anaconda kan vi simpelt installera de bibliotek som beh¨ovs.

3.2.6 Tensorflow

Tensorflow4¨ar en ¨oppen k¨allkod bibliotek som anv¨ands inom machine learning.

Det anv¨ands f¨or b˚ade forskning och produktion p˚a Google och ¨ar utvecklad av Google Brain Team.

3.2.7 Versionshanetring

I projektet kommer Github5 anv¨andas f¨or versionshantering av kod. Man kan enkelt skapa flera versioner av en kod vid v¨agsk¨al d¨ar man inte ¨ar s¨aker p˚a

1https://oauth.net/2/

2https://developers.google.com/api-client-library/java/

3https://www.anaconda.com/what-is-anaconda/

4https://www.tensorflow.org/

5https://github.com/features

(22)

vilket alternativ som ¨ar b¨ast utan att man beh¨over komma ih˚ag vad som lades till eller togs bort. Det g˚ar att l¨agga till egna kommenterar vid ¨andringar.

3.2.8 Databas

Java anv¨ands f¨or att logga inkommande data fr˚an API:et till databasen d˚a Java har bibliotek s˚a att man kan koppla upp sig mot olika versioner av databaser, i detta fall ¨ar det en MariaDB6databas. D˚a en av studenterna har en NAS med Synology OS hemma har man installerat MariaDB p˚a den samt phpMyAdmin7 or att kunna hantera databasen p˚a ett simpelt s¨att. Man har valt MariaDB eftersom det har samma syntax som MySQL vilket ¨ar vad man har g˚att genom a h¨ogskolan och p.g.a. att det ¨ar ¨oppen k¨allkod.

3.2.9 Supervised Machine Learning

Anledningen till att SML valdes berodde d˚a att projektets data redan ¨ar kate- goriserad likt artiklarna om f¨orseningar [2, 3, 4, 7]. Hade projektets data inte varit kategoriserad hade UML varit l¨ampligt att anv¨anda i projektet. Majo- riteten av artiklarna anv¨ander sig av NN som antingen den enda algoritmen eller som huvudalgoritm vilket gav ett stort intresse att unders¨oka. DT och LR var ocks˚a vanligt f¨orekommande och kunde ¨aven de uppvisa goda resultat i de relaterande arbetena kring f¨orseningar. D¨arf¨or valde projektgruppen att ¨aven inkludera dessa f¨or att kunna j¨amf¨ora resultaten. Parametrarna i artiklarnas dataset hade ocks˚a m˚anga likheter med projektets, vilket gjorde deras val av algoritmer intressanta att utv¨ardera f¨or detta projektets syfte. H¨ar kunde man

¨aven inkluderat flera algoritmer som skulle kunna anv¨andas till projektets syfte, men med begr¨ansade kunskaper och tid s˚a valde projektgruppen att f¨orh˚alla sig till NN, DT och LR.

3.3 Teori

3.3.1 Neural Network

Ett nerual network ¨ar ett n¨atverk best˚aende av noder som ligger i olika lager.

Dessa lager ¨ar Input-Layer (IL), HL och Output-Layer (OL) [9].

IL tar in alla parametrar som man har i sin data. Efter detta kommer para- metrarna g˚a vidare till HL. Exemplet i figur 3.5 finns det endast ett lager i HL, men det kan vara fler och med varierande m¨angd av noder i vardera, vilket kan ge annorlunda resultat. OL utger vilket svar algoritmen har kommit fram till.

Detta lager kan ocks˚a best˚a av fler noder.

Varje nod med ing˚angar innehar ett v¨arde av en summa som kallas aktive- ringsfunktion a. Detta ¨ar en summa av varje vikt w som multipliceras med dess oreg˚aende nod x. Efter summeringen subtraheras detta med en faktor θ som

6https://mariadb.org/about/

7https://www.phpmyadmin.net/

(23)

Figur 3.1: Ett exempel p˚a NN

heter bias. Bias ¨ar en tr¨oskel till aktiveringsfunktionen, vilket betyder att bia- sens v¨arde best¨ammer huruvida en nod ska vara aktiverad (ha n˚agon p˚averkan) a n¨atverket. H¨ar ¨ar ett exempel p˚a hur en aktiveringsfunktion f¨or en nod kan se ut:

a = w1x1+ w2x2+ ... + wnxn− θ eller

a = (

n

X

i=1

wixi) − θ

ar n ¨ar antalet noder. H¨ar ¨ar en illustraion p˚a hur det kan se ut:

Figur 3.2: Nod med ing˚angar fr˚an noder i f¨oreg˚aende lager

Tr¨aning av NN sker genom att justera vikterna mellan noderna samt biasen.

ar algoritmen tr¨anas med data j¨amf¨or den sitt svar med vad svaret egentligen skulle vara. H¨ar anv¨ands en f¨orlust-funktion f¨or att minimera antalet fel i algo- ritmen. Det finns flera olika funktioner f¨or att g¨ora detta, men f¨or att n¨amna agon och kanske den mest k¨anda ¨ar Mean Squared Error (MSE) en s˚adan [10].

MSE r¨aknar ut snittet p˚a hur mycket algoritmens svar varierar i f¨orh˚allande till det riktiga svaret. Funktionen ser ut p˚a f¨oljande s¨att d¨ar N ¨ar antal exempel, y

¨

ar det riktiga svaret och y0 ¨ar algoritmens svar:

(24)

M SE = N1

N

X

i=1

(yi− yi0)2

MSEs egenskap att vara kvadratiskt ger m¨ojlighetgen att hitta ett lokalt mini- mum och h¨ar kan man anv¨anda optimerare till funktionen som bl.a. sjunkgra- dient f¨or att hitta ett globalt minimum och d¨armed minimera f¨orlust-funktionen.

NN kan anv¨andas n¨ar problemen ¨ar linj¨ara eller icke-linj¨ara vilket ¨ar en f¨ordel.

Den ¨ar snabb p˚a att hitta trender och samband i data vilket kanske skulle kunna vara en n¨astintill om¨ojlighet f¨or anv¨andaren att g¨ora annars eller kunna f¨orklara den. Den mest anv¨anda modellen ¨ar med multi-lager vilket ¨ar beskrivet ovan.

Det finns allts˚a ett eller fler HL i n¨atverket. F¨ordelen med att ha fler lager ¨ar att atverket blir b¨attre mot irrelevant brus och data. Dock kan problem uppst˚a n¨ar man best¨ammer antalet HL. Har man f¨or f˚a kan algoritmen approximationer bli aliga och har man f¨or m˚anga lager riskerar algoritmen att generalisera data p˚a aligt s¨att, ¨aven kallat over-fitting [11].

3.3.2 Decision tree

DT ¨ar en klassificerare som bygger p˚a att f¨ors¨oka hitta de b¨asta parametrarna f¨or att p˚a s˚a s¨att dela upp ett dataset i mindre delar och hitta r¨att svar [12]. Tr¨adet

¨

ar uppbyggt av noder som alla representerar en parameter ifr˚an ett dataset och dess grenar representerar de olika v¨ardena som denna parametern kan anta.

Tr¨adets rot ¨ar b¨orjan av tr¨adet och denna rot f¨oretr¨ader den parameter som ast delar p˚a ett dataset.

Figur 3.3: Ett exempel p˚a DT

De vanligaste s¨atten att dela noder i DT kan delas in i tv˚a klasser: axel- parallella och sneda [13]. Det ¨ar dessa delningar av noder som avg¨or hur tr¨adet kommer att bli konstruerat. B˚ade axel-parallella och sneda delningar anv¨ander sig av en linj¨ar metod vid delning d¨ar metoden v¨aljer att dela noders grenar i ett eller flera hyperplan. Som tidigare n¨amnts representerar allts˚a dessa grenar olika v¨arden som parametern kan anta. Alla dessa grenar kan visas p˚a en graf som olika regioner p˚a grafen exempel p˚a detta visas i figur 3.4.

(25)

(a) Axel-parallell (b) Sned

Figur 3.4: Exempel p˚a axel-parallella grenar i en graf i figur 3.4a och sneda grenar i en graf i figur 3.4b.

Axel-parallella tr¨ad d¨ar alla parametrar i ett dataset har ¨andliga v¨arden kan skapa ett icke-bin¨art tr¨ad d¨ar varje nod skapar sig s˚a m˚anga grenar som den bara kan vilket kan vara v¨aldigt bra. Detta kan dock komma med ett pris att storleken p˚a tr¨adet blir v¨aldigt stort. Sneda tr¨ad fungerar som bin¨ara tr¨ad och

¨ar mer m˚angsidiga d˚a de inte beh¨over vara axel-parallella och kan skr¨addarsys a ett b¨attre s¨att. Ut¨over axel-parallella och sneda kan man ¨aven kombinera eller styckvist dela in regioner med andra metoder [13]

DT ¨ar en av de vanligaste och kraftfullaste algoritmerna att anv¨anda sig av ar man utvinner data. Den ¨ar bra p˚a att kunna hitta m¨onster och beteenden i olika data [11].

Den har dock sina nackdelar d¨ar sm˚a f¨or¨andringar i tr¨aningsdata kan ha stora or¨andringar p˚a tr¨adet. En annan nackdel ¨ar att det kan skapa ¨over-komplicerade tr¨ad d¨ar generaliseringen av tr¨aningsdata inte blir bra (over-fitting).

3.3.3 Logistic regression

LR ¨ar en modell som bygger p˚a att utdatan Y endast kan anta bin¨ara v¨arden 1 eller 0. Det ¨ar en sigmoid-funktion som ritar upp en linje som h˚aller sig inom 0 ≤ Y ≤ 1. Sigmoid-funktionen ser ut p˚a f¨oljande s¨att:

σ(X) = 1+e1−X

Genom att ge indata X till funktionen kan man sedan l¨asa av p˚a Y -axeln vilken sannolikhet X har i sammanhanget, allts˚a bY .

(26)

Figur 3.5: Exempel p˚a LR

LR r¨aknar ut sannolikheten f¨or att n˚agot ska intr¨affa p ¨over att det inte skulle intr¨affa 1 − p, detta f¨orklaras i termer av odds [14].

odds =1−pp

I LR ¨ar p medelv¨ardet p˚a det f¨orv¨antade svaret fr˚an given variabel x. En ekva- tion antas f¨orklara relationen mellan p och x

y = β0+ β1x

ar β0och β1¨ar faktorer till LR (f¨orklaras l¨angre ner). Beroende p˚a hur m˚anga parametrar ett dataset har s˚a kan denna ekvation ut¨okas

y = β0+ β1x1+ ... + βnxn

Denna ekvationen ¨ar n˚agot lik den vi sett tidigare i NN. β0 ¨ar konstanttermen som avg¨or vart ekvationen sk¨ar y-axeln och β1, β2, ..., βn ¨ar koefficienter som motsvarar vikter till parametrarna x1, x2, ..., xn. Genom tr¨aning av algoritmen a justeras dessa f¨or att f¨orb¨attra algoritmens svar. Problemet h¨ar ¨ar att x kan anta vilket v¨arde som helst mellan −∞ och +∞. Detta betyder att svaret inte orh˚aller sig inom intervallet 0 och 1. Genom att anv¨anda naturliga logaritm ln a odds och st¨aller mot den linj¨ara funktionen l¨oser detta problemet.

logit(y) = ln (1−pp ) = β0+ β1x1+ ... + βnxn

Genom att ta inversen till logaritmen p˚a b˚ade sidor ges svaret vi k¨anner igen fr˚an hur en kurva i LR ser ut

y = 1−e−(β0+β1x1+...+βnxn)1

LR ¨ar enkel att justera tr¨oskeln p˚a f¨or vad man anser vara d˚aliga svar fr˚an algoritmen eftersom den ger ett svar i sannolikhet. Den har sina f¨ordelar att man inte beh¨over g¨ora n˚agot antagande att linj¨ara f¨orh˚allanden finns mellan parametrarna och m˚alet man s¨oker svar p˚a. En nackdel ¨ar att det kan kr¨avas en st¨orre m¨angd data f¨or att n˚a ett stabilt och trov¨ardigt svar fr˚an algoritmen [11].

(27)

3.3.4 ROC kurva

or att utv¨ardera algoritmerna kommer Receiver Operating Characteristics (ROC) graf att anv¨andas. Det ¨ar en teknik f¨or att visualisera, organisera och alja algoritmer (classifiers) baserat p˚a deras prestation. [15] ROC-grafer har ange anv¨ants i signaldetektionsteori f¨or att skildra avv¨agningen mellan tr¨affgrad och falskalarmgrad, som t.ex. i arbetets sammanhang kan de fyra falskalarm- graderna beskrivas p˚a f¨oljande s¨att:

Sann-Positiv (SP) - algoritmen f¨orutsp˚ar att t˚aget blir f¨orsenat och det ¨ar orsenat.

Sann-Negativ (SN) - algoritmen f¨orutsp˚ar att t˚aget inte blir f¨orsenat och det

¨ar inte f¨orsenat.

Falsk-Negativ (FN) - algoritmen f¨orutsp˚ar att t˚aget ¨ar f¨orsenat och det ¨ar inte f¨orsenat.

Falsk-Positiv (FP) - algoritmen f¨orutsp˚ar att t˚aget inte ¨ar f¨orsenat men det

¨ar f¨orsenat.

Spackman [16] var en av de f¨orsta som demonstrerade v¨ardet av att anv¨anda ROC-kurvan f¨or att v¨ardera och j¨amf¨ora algoritmer. P˚a senare tid har anv¨andandet av ROC-kurvan inom ML ¨okat p.g.a. att simpla tr¨affs¨akerhets v¨arderingar av algoritmer kan vara otillr¨ackliga s¨att att m¨ata algoritmens prestationsf¨orm˚aga.

Figur 3.6: Exempel p˚a punkter i en ROC kurva

Punkt A i figur 3.6 betyder att algoritmen inte lyckades f¨oruts¨aga n˚agot po- sitiv resultat. Punkt B inneb¨ar att allting ¨ar perfekt allts˚a finns det inte n˚agra FP felbed¨omningar och den lyckas s¨atta alla SP scenarion. Punkt C inneb¨ar att algoritmen lyckas att f¨oruts¨aga alla positiva f¨orekomster korrekt men p˚a bekost- nad av att den f¨oruts¨ager alla negativa f¨orekomster inkorrekt. Man ska allts˚a ors¨oka f˚a en punkt i den nordv¨astra h¨ornet f¨or ett bra resultat, det inneb¨ar att den SP-graden ¨ar h¨ogre och FP-graden ¨ar l¨agre. F˚ar man en punkt under den di- agonala linjen som punkt D i figuren inneb¨ar det att algoritmen har anv¨andbar

(28)

information men den applicerar informationen p˚a ett inkorrekt s¨att. Den dia- gonala linjen representerar strategin av att slumpm¨assigt gissa svaret 50%. En punkt p˚a den diagonala linjen som punkten E inneb¨ar att algoritmen presterar lika bra som en algoritm som gissar slumpm¨assigt ifall t˚aget ¨ar f¨orsenat. Punkt E m˚a ha en bra grad f¨or sann positiva f¨oruts¨agelse, 80% i detta fallet men den oruts¨ager de falsk positiva scenarion fel i 80% av fallen ocks˚a.

3.3.5 AUC

En ROC-kurva ¨ar en tv˚a-dimensionel avbildning av algoritmens prestation. F¨or att j¨amf¨ora algoritmernas prestanda v¨ajer man att anv¨anda sig av ett enda skal¨arv¨arde som representerar den f¨orv¨antade prestationen. Den vanligaste me- toden ¨ar att ber¨akna arean under ROC-kurvan, Area Under Curve (AUC).

ardet av AUC kommer alltid att ligga mellan 0 och 1.0, men eftersom en al- goritm som slumpm¨assigt gissar f¨oruts¨agelsen producerar den diagonala linjen och har en area p˚a 0.5 s˚a ska inte en realistisk algoritm ha ett AUC v¨arde under 0.5. Den bl˚aa linjen i figur 3.7 har n¨astan ett perfekt AUC v¨arde, den orangea linjen har ett s¨amre AUC v¨arde men fortfarande acceptabel d˚a det har ett h¨ogre AUC v¨arde ¨an den diagonala linjen.

Figur 3.7: Exempel p˚a ROC kurvor

References

Related documents

Till exempel fick jag inte med n˚ agot Ljus- och Optikland i f¨ orsta f¨ ors¨ oket, och pilen mot Kosmologi, som ligger utanf¨ or den h¨ ar kartan, borde peka mer upp˚ at,

Resonemang, inf¨ orda beteck- ningar och utr¨ akningar f˚ ar inte vara s˚ a knapph¨ andigt presenterade att de blir sv˚ ara att f¨ olja.. ¨ Aven endast delvis l¨ osta problem kan

Antalet kunder som bes¨ oker de tv˚ a aff¨ arerna en timme kan beskrivas med Poissonf¨ ordelningar.. Det genomsnittliga antalet kunder som bes¨ oker de tv˚ a aff¨ arerna ¨ ar

Vid bed¨ omningen av l¨ osningarna av uppgifterna i del 2 l¨ aggs stor vikt vid hur l¨ osningarna ¨ ar motiverade och redovisade. T¨ ank p˚ a att noga redovisa inf¨ orda

¨ar en kompakt m¨angd och funktionen f ¨ar kontinuerlig p˚a denna, s˚a d¨arf¨or kan vi p˚a f¨orhand veta att f har ett minsta v¨arde p˚a denna m¨angd, vilket d˚a ocks˚a,

L˚ at y(t) vara andelen av populationen som ¨ar smittad efter tiden t dygn, r¨aknad fr˚ an uppt¨ack- ten... Observera att ¨amnets koncentration ¨ar samma som m¨angden av

Rutinen som anv¨ands f¨ or att definiera operatorn, kan ha antingen ett eller tv˚ a argument, men eftersom funktionen normalt definieras i samma modul som inneh˚

[r]