您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

支持Java的Vector Machine吗?

支持Java的Vector Machine吗?

您描述的“智能监视器”就是时间序列分类

分类算法很多。它们基本上都采用一个矩阵,其中的行是观察值,列是以某种方式描述观察值的“特征”,以及长度为0或1的长度行的标签矢量。在您的问题中,观察值可能是一分钟的样本,则在遇到性能问题的时间段内,标签向量的值为1,否则为0。

在此定义中隐含了需要对数据进行重新采样(必要时使用模式/中位数/平均值),以使每个观察值均被均匀定义,例如秒,分钟或小时。

生成特征是至关重要的部分。我可能会从2个功能开始,即 和观测 x_i和x_i-1之间的(一次) 。我们将这些定义为2的滞后时间。每个功能都无法展望未来。对于每个观察,每个特征都必须代表相同的事物。

例如,考虑长度为10的时间序列:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

如果我们要使用过去两个间隔的滞后来生成一组要素,则时间序列的前两个元素被视为老化样本。我们不能使用与它们相关的观察结果来训练算法。

8行2列的 是

[[ 1.,  0.]
 [ 2.,  1.],
 [ 3.,  2.],
 [ 4.,  3.],
 [ 5.,  4.],
 [ 6.,  5.],
 [ 7.,  6.],
 [ 8.,  7.]]

[[ 1.,  1.],
 [ 1.,  1.],
 [ 1.,  1.],
 [ 1.,  1.],
 [ 1.,  1.],
 [ 1.,  1.],
 [ 1.,  1.]])

这些将列堆叠。您可以探索许多其他功能滚动平均将是我的下一个选择。

如果您想在未来做进一步的预测,那么您的训练数据应该与标签向量相距较远。

如果性能不令人满意,请尝试通过在更大的窗口上选择滚动平均值来添加更多功能,或者将来再添加更多功能。改善时间序列算法性能一个聪明技巧是包括一个时间间隔的预测值。

使分类器适合数据的某些早期部分,然后在数据的后续部分中观察其准确性。您可以使用许多分类指标。如果您选择使用输出概率而不是硬1/0的分类器,那么您的选择甚至会扩大。(分类器的用法也是如此。)

精度和召回率分类器的直观性能指标。

训练数据的前半部分(后半部分)并测试后半部分(后半部分)。

就算法而言,我将研究逻辑回归。如果性能不令人满意,并且您已经用尽了特征提取选项,我只会在别处查找。

Mallet似乎是完成此任务的良好库。请参阅此文档。

我最近发现了JSAT,它看起来很有希望。

有更多特定的时间序列分类方法,这些方法明确考虑了观测值和标签的顺序性质。这是分类对时间序列的通用调整。

java 2022/1/1 18:36:35 有374人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶