zaterdag 17 oktober 2015

Foute bussen - deel zeven - Optimalisatie

De eerdere testen met het neuraal netwerk waren wel veelbelovend maar zeker niet geschikt om anomaly detection uit te voeren. De afwijking was simpelweg veel te groot. Ik vermoed dat dit ondermeer te maken heeft met de nauwkeurigheid van de getallen. Een graad is al 111.12 km en eigelijk zou een nauwkeurigheid van bijvoorbeeld maximaal een halve kilometer gewenst zijn. Een halve kilometer is ongeveer 0.0044996 graden. Of te wel de nauwkeurigheid speelt zich af in de kleinere getallen. Voor de simulatie is de exacte aardpositie niet relevant. Het gaat om relatieve verschillen. Ik besluit de getallen dan ook in ieder geval terug te brengen naar rond het nulpunt. Simpelweg 41 graden aftrekken van de lengte-as en 87 graden optellen bij de breedte-as.  Daarna vermenigvuldig ik ze beide met 100. Om daarna weer de echte afstandsfout te berekenen en een kaartje te tekenen moet ik uiteraard de omgekeerde berekening uitvoeren. Het resultaat is indrukwekkend. Ik besluit het aantal epochs (minibatches) ook te verhogen naar 1600.  

Een gemiddelde van onder de 1 km. Dat is al een enorme stap in de goede richting.

count  1317.000000
mean      0.986176
std       1.551062
min       0.031843
25%       0.458521
50%       0.700672
75%       1.018873

max      20.588678
   
Hier een voorbeeld resultaat:
Distance =  0.268436288452


En hier een voorbeeld van een 'anomalie':

Distance =  18.6012228149
De anomalieën blijken vaak van deze aard. Onlogische samenhang van posities. Om een beter simulatie te maken kan ik waarschijnlijk deze fouten eruit halen. Hoe hard mag een bus eigelijk rijden in Chicago? Is 100 km/uur een anomalie? In 2 minuten zou dan 3,3 km gereden worden. In 8 minuten dus maximaal 13.2 km.  18.6 lijkt dan wel erg snel! Eens kijken of we de voorspellingen nog kunnen verbeteren.  


Geen opmerkingen:

Een reactie posten