预测最有可能打开的应用程序

数据挖掘 机器学习 神经网络 预测建模 时间序列 初学者
2021-10-07 20:38:36

背景

我目前正在准备一篇论文,其中我将讨论预测用户在给定时间最有可能打开的应用程序的能力。

应用程序将收集信息并学习根据学习到的模式来预测最有可能运行的应用程序。

建议的方法

我正在为机器上运行的任何给定程序收集以下功能:

  1. 一天中的时间(预测程序是否正在运行)
  2. 星期几(了解何时使用)
  3. 最近打开的程序(查看程序之间的连接)
  4. CPU 负载(阅读下文)
  5. GPU 负载(阅读下文)
  6. 内存使用(将程序连接到大量使用)
  7. 屏幕使用(查看程序是否与活动屏幕连接)
  8. 最后一次鼠标移动(查看程序在运行时是否被主动使用)
  9. 上次键盘使用情况(同上)
  10. App running(应用程序是否正在运行)

提到的特征应该允许存在一些季节性,因此应该产生一些有趣的结果。

收集数据后,将使用标准化输入和每个应用程序作为代表程序运行可能性的单独输出来训练 ANN。(0-1)

问题

所提出的方法是否足以完成这样的任务?我读过关于使用贝叶斯分类器的文章,但它似乎不是我所追求的。

我还读到过这是一项“时间序列”任务——我无法完全理解这一点,但我认为我正在通过建议的方法加以利用。这是一个时间序列吗?有必要这样对待吗?

每个应用程序应该作为单独的输出出现,还是应该将当前应用程序作为输入提供,输出显示给定应用程序正在运行的可能性?

1个回答
  1. 您打算如何预测确切的应用程序?您是否正在考虑用户级别模型(如果用户一开始没有安装应用程序 X,您无法预测她会打开应用程序 X)还是您想在细分级别预测应用程序(而不是预测个人应用)
  2. 如果您有足够的数据,神经网络应该可以很好地工作,因为它具有良好的“容量”
  3. 时间序列部分来自这样一个事实,即打开应用程序的概率取决于之前打开的应用程序。这被称为“结构化预测”,在语言模型等中很常见。
  4. 输出将是应用程序的分布,您可以使用 soft max 层作为最终输出