I'm working on a project that involves tracking my location with OpenPaths
, and creating a website displaying a map of probable locations that I would be at the current point in time, based on two factors: the time of day and day of week.
So, if you accessed the website at 4:52pm on a Tuesday, the website would calculate according to historical location data, the probability that I'm at X, Y, and Z locations at 4:52pm on Tuesday. This information would be shown on a map with vague fuzzy locations, so the point is not so much that the user knows exactly where I am, but that he/she gets a vague sense of where I might be. This is a screenshot
of a prototype website, built with a mix of php and python, in which gradients are overlaid onto a Google Maps-driven site.
I have everything working except for the actual algorithm. Currently the website just grabs data from a similar timeframe, and privileges the data if it happens to lie on the same day of the week. So if I've been somewhere at 5:10pm on a previous Tuesday, it'll display that moment with a higher opacity than a 4:52pm location point on a previous Saturday, for example. But this algorithm leads to certain inaccuracies -- for example, my schedule depends on the specific day of the week, but I can't just look at weekday data, since I also follow cycles of day/night that are similar across all spectrums.
I'm trying to implement a better, 'real' algorithm. Would anyone happen to have any ideas for an effective and relatively accurate algorithm to thus predict my location based on historical data? I'm not interested in hyper-accuracy, since I'm trying to obfuscate my specific location anyways, just a kind of proof-of-concept workability.
Location-prediction algorithms seem to result in a slew of massively complex algorithms. Some simple machine learning/markov model/decision tree would be interesting, I think, but I'm not sure how to apply location (gps coords), day of week, and time as two different variables and one output. I've looked at the Google Prediction API, which is perfect, except that it can only deal with one result, not two (lat & long coordinates). Something even more simple would suffice. Any ideas? Thanks!