Predicting most likely application to be opened



I'm currently preparing for a paper in which I will discuss the ability to predict the most likely application to be opened by the user at the given time.

The application will collect information and learn to predict which application that is most likely to be run based on the learned patterns.

Proposed method

I'm collecting the following features for any given program run on the machine:

  1. Time of day (To predict if the program is being run)
  2. Day of week (To learn when it is used)
  3. Most recently opened program (To see connections between programs)
  4. CPU load (Read below)
  5. GPU load (Read below)
  6. Memory usage (To connect programs to heavy usage)
  7. Screen use (To see if the program has connections with an active screen)
  8. Last mouse movement (To see if the program is actively used when it is run)
  9. Last keyboard usage (Same as above)
  10. App running (Whether or not the application is running)

The mentioned features should allow for some seasonality to be present and should therefore yield some interesting results.

When the data has been collected, An ANN will be trained with the normalized inputs and each application as a separate output representing the possibility of the program being run. (0-1)


Is the proposed method adequate for such a task? I've read about using Bayesian classifiers but it doesn't seem like it's what I'm after.

I've also read about this being a "time series" task - something I couldn't quite wrap my head around but I assume I am exploiting through the proposed method. Is this a time series? Does it have to be treated as such?

Should each application be present as a separate output or should the current application be fed in as an input, with the output presenting the possibility of the given app being run?


Posted 2016-03-07T12:58:22.040

Reputation: 141



  1. How do you plan to predict the exact app? Are you thinking of a user level model (you can't predict that a user will open app X if she doesn't have it installed in the first place) Or maybe you want to predict apps at a segment level( instead of predicting individual apps)
  2. A neural network should work well if you have enough data since it has good "capacity"
  3. The time series part comes from the fact that the probability of opening app depends on what app was opened before it. This is called "structured prediction" and is quite common in language models etc.
  4. The output will be a distribution over the apps and you can use a soft max layer for the final output


Posted 2016-03-07T12:58:22.040

Reputation: 1 117