我试图预测传入的网络数据包的到达时间。我测量网络数据包的到达时间,并以二进制特性的形式表示该数据: xi= 0、1、1、1、0、若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)问题是,我总是有偏见的预测。由于较短的间隔时间相对较短,所以短时间的后部始终高于长的。有什么办法可以改善这种情况吗?还是我做错什么了?任何帮助都将不胜感激。
发布于 2011-11-23 06:02:58
由于您有一个很长的时间序列,最好的路径可能是考虑多个以前的值。这样做的标准方法是使用一个时间窗口,即将长向量Xi分割成一个固定长度的重叠段,并将最后一个值作为类,并使用它们作为火车集合。这也可以以在线方式在流数据上完成,方法是在NB模型到达时用新的数据增量地更新它。
请注意,使用这种方法,其他回归算法可能是一个比NB更好的选择。
Weka (版本3.7.3及以上)有一个非常好的专用工具支持时间序列分析。或者,莫阿也是基于Weka的,并且支持流数据的建模。
编辑:从二进制特性移到实际值(可能是规范化的)并应用阈值后分类也可能是个好主意。这可能会给回归模型(NB或其他)提供更多的信息,从而获得更好的准确性。
https://stackoverflow.com/questions/8096508
复制相似问题