Machine learning to predict apps (recomendation)


I am currently collecting mobile device data about user location and the time at which an app is being used for a cohort of users and apps. I am trying to predict which apps are likely to be used at a given time by a given user.

Which model should i use in order to predict the apps that are likely to be used by a particular user? For example, should I collect data for 5 days a week then use the 3 days for training and then the other 2 days for testing? Given location, time of day, and day, what model should I use to predict which app is likely to be used?

Marios Mintzis

Posted 2015-08-19T11:09:40.287

Reputation: 13

Human behaviour is often related to the day of the week so allocating entire days to either training or test doesn't not seem initially to be an optimal choice. – image_doctor – 2015-08-19T16:07:48.427

However would you suggest to make classifier for each app ? In order to predict the possibility of an app to be used at a location combined with time of day and also day of week ? For example logistic regression trained only on app1, logistic regression trained only for app2 etc...and then after collecting data for 2 weeks. Train these classifiers with the data from the first week and test my predictions on the second week? Is logistic regression for each app a good approach ? that is what i am actually askiing.. – Marios Mintzis – 2015-08-19T17:34:12.863

1 v All classification schemes, such as you suggest, can be effective, or you could just use a classifier that can deal with multiple classes such as RandomForest or MultiLayerPerceptrons. Two weeks doesn't sound like a lot of data, but if that's all you've got, then it sounds reasonable. Though weeks in August won't be like those in December. I"d look at a range of classifiers not just one, that's the best way to explore the function solution space. – image_doctor – 2015-08-19T18:18:36.607

"Spatio Temporal Statistics" – Vladislavs Dovgalecs – 2015-08-19T22:25:18.487

image_doctor. Do you believe Kohenes neural network is a good approach to use in my case? – Marios Mintzis – 2015-08-25T03:00:41.597



Much depends on the data available to you. Perhaps you can be more specific about the scale and scope.

Modelling time is the straightforward bit. To understand how to conceptualise time as useful features, see this excellent answer on Machine learning - features engineering from date/time data

Modelling the user is more complicated. You will likely not have enough data on each user, but you can build some user models. (Too few, then the system will make similar predictions for all users, without nuance. Too many and there will be sparsity, overfitting, and generally the same problems as having no profile models at all, ie one model per actual user.)

This can be done supervised or unsupervised, finding representative clusters.
(Search for user profile categorisation, user models, user model clustering)

Adam Bittlingmayer

Posted 2015-08-19T11:09:40.287

Reputation: 504