我承认,我不是一个统计类的人。但我以前遇到过这类问题。我们在这里真正谈论的是,你有一些观察到的、离散的事件,你想弄清楚你在任何给定时间点看到它们发生的可能性有多大。您遇到的问题是您想要获取离散数据并从中获取连续数据。
想到的术语是密度估计。特别是核密度估计。您可以通过简单的分箱来获得核密度估计的一些效果(例如,在一个时间间隔内计算事件的数量,例如每一刻钟或每小时)。核密度估计比简单的分箱具有更好的统计特性。(生成的数据通常“更平滑”。)
不过,这只解决了您的一个问题。下一个问题仍然是更有趣的问题——你如何获取数据的时间线(在这种情况下,只有打印机数据)并从中产生预测?第一件事是第一 - 你设置问题的方式可能不是你想要的。虽然拥有有限数据源并预测该数据源下一步的神奇想法听起来很有吸引力,但整合更多数据源以创建实际预测更为实际。(例如,可能在大量电话活动之后打印机受到重创——这在某些公司中可能很难预测) Netflix 挑战赛是这一点的一个相当有力的例子。
当然,更多数据源的问题在于建立收集数据的系统需要额外的工作。
老实说,我认为这是一个特定领域的问题,并采取两种方法:找到与时间无关的模式,并找到与时间相关的模式。
一个与时间相关的示例示例是,每周一天的 4:30,Suzy 打印出她的一天结束报告。这发生在一周中的每一天的特定时间。这种事情很容易以固定的时间间隔检测出来。(每天、每个工作日、每个周末、每个星期二、每个月的 1 日等......)这非常容易以预定的时间间隔检测 - 只需创建一个估计概率密度函数的曲线,即一周长并及时返回并对曲线进行平均(可能通过窗口函数进行加权平均值以获得更好的预测)。
如果您想变得更复杂,请找到一种方法来自动检测此类间隔。(可能数据不会如此庞大,以至于您可以暴力破解。)
一个示例的时间无关模式是,会计部门的 Mike 每次打印发票清单时,他都会去找 Johnathan,Johnathan 会在几个小时后打印出相当多的完整发票报告。这种东西更难检测,因为它的形式更自由。我建议查看不同的时间间隔(例如 30 秒、40 秒、50 秒、1 分钟、1.2 分钟、1.5 分钟、1.7 分钟、2 分钟、3 分钟、.... 1 小时、2 小时、3 小时, ....) 并以一种很好的方式对它们进行二次采样(例如Lanczos 重采样)以创建向量。然后使用矢量量化风格算法对“有趣”的模式进行分类。但是,您需要仔细考虑如何处理类别的确定性——如果您的结果类别中的数据非常少,那么它可能不可靠。(一些向量量化算法在这方面比其他算法更好。)
然后,为了预测未来打印某些东西的可能性,通过矢量量化查找最近的活动间隔(30 秒、40 秒、50 秒、1 分钟和所有其他间隔)并加权结果基于他们的确定性来创建预测的加权平均值。
您将希望找到一种衡量与时间相关和与时间无关的输出的确定性以创建最终估计值的好方法。
这种事情是典型的预测数据压缩方案。我建议您看一下PAQ,因为它包含了很多我在这里讨论过的概念,并且可以提供一些非常有趣的见解。源代码甚至与所用算法的优秀文档一起提供。
您可能希望采用与矢量量化完全不同的方法并将数据离散化并使用更像PPM方案的方法。它可以非常简单地实现并且仍然有效。
我不知道这个项目的时间框架或范围是什么,但这种事情总是可以被带到第 N 级。如果它有最后期限,我想强调的是,你担心先让某些东西工作,然后让它运作良好。不是最佳的东西总比没有好。
这种项目很酷。如果你把它包装好,这种项目可以给你一份工作。我建议你慢慢来,把它做好,并将其发布为功能、开源、有用的软件。我强烈推荐开源,因为您将希望创建一个社区,该社区可以在您可以访问、愿意支持或有时间支持的更多环境中贡献数据源提供者。
祝你好运!