This application has it's roots in public transport, users opening the application and looking at the departure times of buses for specific stops (page 1) or planning a journey from location A to B with a journey planner(page 2). Two separate pages, two separate functions.
Page 1 you can say the user is familiar with the route, as they only need to know the departure and page 2 vice versa they do not know the route, and need a journey planner to assist them.
I am trying to make an application that displays one of the pages to the user depending on specific variables(which will make up a state). The page that the application shows to the user is dependent on former rewards on those specific states given the actions of the user; the user will either 1) stay on the page first shown, which will result in + reward or 2) navigate to the other page, which will result in - reward.
In simple terms, I would like to display the correct page to the user when the user enters the application, so the user does not have to navigate there themselves.
The features I get to play with include the following:
location
time of day
day of week
|----- monday
|----- tuesday
|----- wednesday
|----- thursday
|----- friday
|----- saturday
|----- sunday
week of month
|----- 1
|----- 2
|----- 3
|----- 4
month of year
|----- january
|----- february
|----- march
|----- april
|----- may
|----- june
|----- july
|----- august
|----- september
|----- october
|----- november
|----- december
action
|----- page 1
|----- page 2
An example of using this set would be the following:
The user enters the application and the application displays page 1 (default page). The user stays on the page, reward is given to the state.
{
location: '12th Example Street, Somecity',
timestamp: '2015-03-03 08:31:12', // <--- this includes day, week, month, year etc. as you can see
action: page1
}
As most commuters have 7-4 jobs it's very routine. Monday to Friday the user usually takes the bus to work every morning and then back at home. He knows his route so page 1 would be optimal to be displayed. This user on a non-specific Friday night however is out at a pub and has a pint too, ends up at an after party in the middle of who-knows-where resulting in trying to get home, page 2 would be optimal for him Saturday morning.
As learning goes, the application must learn before making assumptions, it must also respond to change in routine. A user might change job or move. It's safe to say that if the user does not know where they are that page 2 should be displayed, if the application is confident that the user knows where he is going page 1 is the better choice.
Now my question. Which algorithm/method would be best suited for this task, spending time on one just to realize that it was a complete waste is nothing but a total bummer. I've done supervised learning before however that won't cut it for obvious reasons.
Any comments on anything is welcome! I always like to better myself.