0

我正在尝试预测传入网络数据包的到达间隔时间。我测量网络数据包的到达间隔时间并以二进制特征的形式表示该数据:xi = 0,1,1,1,0,...如果到达间隔时间小于 a ,则xi =0收支平衡时间,否则为 1。必须将数据映射到两个可能的类C={0,1},其中C=0表示较短的到达间隔时间,1 表示较长的到达间隔时间。因为我想在在线特征中实现分类器,所以只要我观察到特征向量xi=0,1,1,0...,我计算MAP类。由于我没有条件概率和先验概率的先验估计,因此我将它们初始化如下:

p(x=0|c=0)=p(x=1|c=0)=p(x=0|c=1)=p(x=1|c=1)=0.5
p(c=0)=p(c=1)=0.5

对于每个特征向量(x1=m1,x2=m2,...,xn=mn),当我输出一个类C时,我将条件概率和先验概率更新如下:

p(xi=mi|y=c)=a+(1-a)*p(p(xi=mi|c)
p(y=c)=b+(1-b)*p(y=c)

问题是,我总是得到一个有偏见的预测。由于long的到达间隔次数比short少,所以short的后总是高于long。有什么办法可以改善这一点吗?还是我做错了什么?任何帮助将不胜感激。

4

1 回答 1

1

由于您的时间序列很长,因此最佳路径可能是考虑多个先前的值。执行此操作的标准方法是使用时间窗口,即将长向量 Xi 拆分为恒定长度的重叠部分,将最后一个值视为类,并将它们用作训练集。这也可以通过在线方式在流数据上完成,方法是在新数据到达时用新数据增量更新 NB 模型。

请注意,使用此方法,其他回归算法可能最终会成为比 NB 更好的选择。

Weka(3.7.3 及以上版本)有一个非常好的支持时间序列分析的专用工具。另外,MOA也是基于 Weka,支持流数据建模。

编辑:从二元特征转移到实际值(可能是标准化的)并应用阈值后分类可能也是一个好主意。这可能会为回归模型(NB 或其他)提供更多信息,从而提高准确性。

于 2011-11-23T06:02:58.233 回答