无线传感器环境下多属性事件的预测方法
【专利摘要】一种无线传感器环境下多属性事件的预测方法,该方法根据多属性事件流自身的特点,建立多属性事件场,将事件流转化为等间隔,用于构建预测模型的训练样本文件,在此基础上构建垂直和水平的双向预测模型,对多属性事件进行预测,并根据不准确预测的积累程度自适应地进行预测模型重建,使预测更具准确性,本发明可广泛用于事件监控、自然灾害监控与预警、健康监护、气候环境监测与预测等应用中。
【专利说明】无线传感器环境下多属性事件的预测方法
【技术领域】
[0001]本发明属于计算机数据处理【技术领域】,具体涉及事件流数据处理技术,特别涉及一种无线传感器环境下多属性事件的预测方法。
【背景技术】
[0002]随着无线传感器在环境监控、物联网等诸多应用中被广泛使用,产生了大量的事件流数据,复杂事件处理(Complex Event Processing, CEP)技术越来越受到关注和重视,逐渐成为数据库领域继数据流之后新的研究热点。一个复杂事件的发生往往由多种因素决定,每一种因素都会对事件产生影响。因此,在无线传感器环境下,传感器往往对多个指标进行监测,多个指标的值或状态共同决定一个复杂事件的发生。因此,本发明将事件模式描述为:e(t, attr:,attr2,…,attrn),其中,attA (η≥i≥I)是η个指标的监测值或状态,这里称为η个属性,e为由η个属性共同决定的事件类型,即最终报告给用户的目标事件,t是事件e发生的时间。当η>1时,e称为多属性事件。与传统的数值型数据相比,事件数据具有一定的语义。如在基于无线传感器的森林火灾监控中,多属性事件state (t, humi, temp, pres, inte, wind)的语义为:在时刻t,传感器采集到的大气湿度为humi,空气温度为temp,大气压力为pres,光照强度为inte,风速为wind,此时传感器所在地的森林安全状态为state。通过对采集的多项指标进行处理,最终得出用户需要的森林安全状态,可以检测或预测森林火灾的发生,此即多属性事件处理。在无线传感器的实际应用中,事件数据通常包含多个属性,研究和处理多属性事件数据具有重要意义,可广泛用于事件监控、自然灾害监控与预警、健康监护、气候环境监测与预测等应用中。
[0003]在目前的复杂事件处理中,复杂事件检测技术研究的较多,已有许多模型和系统用于复杂事件检测,如以SASE为代表的基于自动机的模型、以ZStream为代表的基于匹配树的模型、以Sentinel为代表的基于有向图的模型和以HiFi为代表的基于Petri网的模型等。事件检测是对已经发生的事件进行检测;而事件预测是对未来将要发生的事件进行预测。事件预测可基于以往发生的事件获取即将发生或未来一段时间内可能会发生的事件,从而支持对即将发生的事件做出快速响应,对于无线传感器环境下的事件监控和预警具有重要意义。相比于复杂事件检测,复杂事件预测研究的较少,且目前的事件预测方法都未针对多属性事件数据。目前尚没有面向多属性事件的预测方法提出。
【发明内容】
[0004]针对多属性事件预测,本发明提供一种无线传感器环境下多属性事件预测方法,基于多属性事件场,自适应地建立双向预测模型,对多属性事件进行预测。该方法根据多属性事件流自身的特点,建立了等间隔存储最新事件数据的内存存储结构——多属性事件场(mult1-attribute event field, MAEF),用于构建预测模型的训练样本文件,在此基础上,基于LIBSVM先后建立垂直和水平的双向预测模型,完成对多属性事件的预测,并可根据不准确预测的积累程度自适应地进行模型重建,从而使对多属性事件的预测更具准确性。SVM(support vector machine)是1995年由Vapnik提出的一种基于结构风险最小化准则的统计学习方法,较其它机器学习方法具有泛化性能好、全局最优、小样本和高维数据处理等方面的优势。因此,本发明采用SVM建立双向预测模型。LIBSVM是台湾学者林智仁(Lin Chih_Jen)开发的一种简单易用、快速有效的SVM学习工具,支持SVM分类与回归,本发明使用的是其回归功能。
[0005]本发明方法的无线传感器多属性事件的预测方法,是通过不断地将事件流中最新的事件数据等间隔化并存储于MAEF,构建预测模型的训练样本文件,从而建立垂直和水平预测模型,实现对多属性事件的预测。其步骤包括:
[0006](I)对传感器采集的事件数据的所有非数值型属性和事件类型进行数值编码,形成属性值/事件类型与其编码对应的编码文件输出至磁盘上存储;同时对相关变量进行初始化;
[0007]每个编码文件存储的是相应属性值/事件类型与其编码的对应关系。多属性事件预测过程中需初始化的变量包括:将建立垂直预测模型的标志modelflag初始化为1,水平预测模型已建立标志model_count初始化为O,不准确预测计数inaccu_count初始化为
O0
[0008](2)将所有的编码文件从磁盘读入内存,以方便构建MAEF时进行编码转换;同时在内存中建立多属性事件场结构MAEF,并将与MAEF相关的变量初始化;
[0009]本发明为了建立多属性事件预测模型,设计了多属性事件场结构MAEF。MAEF是一个d行和η列构成的内存结构。每行对应一个等间隔多属性事件,事件场的长度d与用户建立预测模型需要的样本数量有关,可由用户指定。每列分别为多属性事件的η个属性。
[0010]MAEF对于建立多属性事件预测模型的贡献如下:①事件流是无限到达的,而内存是有限的,将不断到达的所有的事件都存储于内存以建立预测模型的训练样本文件是不可能的。MAEF可支持在内存中存储一定量的最新到达的事件数据用于建立预测模型的训练样本文件,存储的事件数据的数量与用户需要的训练样本数量相关,可由用户指定;②MAEF可实现事件时间间隔的等距化。传感器采集数据的时间间隔不一定是等距的,给建立预测模型带来不便。基于MAEF可实现事件时间间隔的等距化,有利于建立预测模型的训练样本文件。③MAEF是循环使用的,支持对过期事件数据的淘汰和新事件数据的补充,使得基于此建立的预测模型能够跟上事件流的变化,从而提高预测的准确性;④对于传感器采集数据过密的情况,MAEF可减少数据冗余。
[0011](3)从传感器事件流读取当前事件,将当前事件的各属性值或其编码(对于非数值型)填入MAEF适当的行粒度,并根据当前事件在MAEF中的位置更新当前最新行粒度current和有效行计数eff_ row—count ;
[0012]为了在构建MAEF的过程中使事件等时间间隔,本发明提出“行粒度”的概念。行粒度是用户指定的相邻两个事件之间的时间间隔。传感器实际采集的数据可能是非等间隔的,且可能在一个行粒度内有多个采集值。本发明方法规定MAEF的每行对应一个行粒度,在一个行粒度内只存储一个事件,且只存储该粒度内最新到达的事件。这样,MAEF不仅减少了事件数据冗余,而且MAEF中每个多属性事件以行粒度为时间间隔,实现等间隔。
[0013]对于非数值型事件属性,要对照步骤(2)读入内存的编码文件将其转换为数值型填入相应的行粒度。[0014](4)判断在MAEF中是否已生成d行有效数据,若已生成d行有效数据,则转入步骤
(5);否则,转入步骤(3);
[0015]这里,d是MAEF的长度,建立预测模型将使用MAEF中最新的d行数据,这里称为有效数据或有效行。
[0016](5)在MAEF中确定构建各预测模型训练样本文件的起始行粒度start和终止行粒度 end。
[0017]随着事件流的不断到来,新到达的事件不断被写入MAEF。当MAEF的d行都被写满时,新到达事件将写入MAEF的第一行。也就是说,在本发明中,MAEF是被循环使用的,用以记载事件流中最新的d个事件属性值用来建立预测模型。因此,需要确定MAEF中最早被写入的行粒度start和最后被写入的行粒度end,以构建各预测模型的训练样本文件。
[0018](6)若建立垂直预测模型的标志model_flag=l,说明需建立垂直预测模型,则基于MAEF中存储的各属性值和步骤(5)确定的起始行粒度start、终止行粒度end,在内存中构建每个属性所对应的垂直预测模型的样本空间,并按照LIBSVM的格式要求将其输出到磁盘上,形成与各属性对应的训练样本文件,转入步骤(7);否则,若标志model_flag Φ I,则绕过建立预测模型的步骤,转入步骤(10);
[0019]在本发明提供的多属性事件预测方法中,将针对每个属性分别建立相应的预测模型。因事件各属性在MAEF中体现为各个列,因此,针对各属性建立的预测模型称为垂直预测模型,其数量与多属性事件属性的数量相等。为此,需为每个属性的预测模型构建其训练样本文件。在所构建的MAEF中,每个属性都可视为等时间间隔的时间序列,因此,每个属性都可按照时间序列的方式形成训练样本空间,并输出至磁盘上存储,形成相应的训练样本文件,以建立相应的预测模型。
[0020](7)针对多属性事件的每个属性,分别建立其垂直预测模型,并置建立垂直预测模型的标志model_flag为O ;
[0021]由于在构建MAEF的过程中已经将所有非数值属性都处理为数值型数据,因此本发明将使用LIBSVM中的回归功能建立各预测模型,具体使用的LIBSVM命令为svmtrain,在此之前首先要为各垂直预测模型选取合适的参数。标志m0del_flag为O意味着垂直预测模型已经建立,如果不准确预测计数未积累到一定程度,则对于新到达数据不需重新建立垂直预测模型,直接基于已有的预测模型进行预测即可。如果不准确预测计数积累到一定程度,标志model_f lag将被重置为1,则对于新到达数据需重建垂直预测模型。
[0022](8)若水平预测模型已经建立,即model_count=l,则转步骤(10);否则,利用属性值和事件类型均已知的d条历史数据,构建水平预测模型的训练样本空间,并将其按照LIBSVM的格式要求输出至磁盘,形成水平预测模型的训练样本文件sensor_trans_train ;
[0023]本发明中,针对事件类型建立的预测模型称为水平预测模型,水平预测模型在多属性事件预测中只需建立一次。
[0024](9)建立水平预测模型,并将水平预测模型已建立标志model_count置为I ;
[0025]基于水平训练样本文件和LIBSVM工具建立水平预测模型。首先进行参数选择,然后使用LIBSVM工具中的svmtrain命令建立水平预测模型。
[0026](10)基于步骤(7)所建立的各属性所对应的垂直预测模型,对各属性下一个时间点的值进行预测;[0027]首先需建立符合LIBSVM格式要求的各垂直预测模型的测试数据文件输出到磁盘上,然后基于建立好的各个垂直预测模型和各测试文件,分别使用LIBSVM的svmpredict命令对各属性下一个时间点的值进行预测。
[0028](11)首先以各属性的预测值作为输入形成水平预测模型的测试样本,输出到磁盘上,建立水平预测模型的测试数据文件;然后对事件类型进行预测;若事件类型为非数值型,需对照其编码对其进行转换,并将转换结果输出到输出设备上。
[0029]基于步骤(10)中预测的下一时间点的各属性值,形成符合LIBSVM格式要求的水平预测模型的测试数据文件存储于磁盘上,然后基于步骤(9)建立好的水平预测模型和测试文件对下一个时间点的事件类型进行预测。若事件类型为非数值型,本发明在建立预测模型时已经将其转换为数值类型,预测结果也为数值类型,因此,要对照其编码将其转换为原来的非数值型进行输出。
[0030](12)进行误差统计以决定是否需重建垂直预测模型,以对预测模型进行自适应修改。
[0031 ] 每当步骤(11)预测结束后,该步骤就对预测的准确度进行统计,当“不准确预测”累积到一定程度时,自适应地对垂直预测模型进行修改。本发明提出“ ε -宽度误差”的概念,以定义什么是“不准确预测”。
[0032]首先根据事件类型的真实值或其编码(对于非数值型)、预测值以及用户给定的最小误差阈值ε计算ε-宽度误差loss;然后,根据loss值以及不准确预测计数inaccu_count决定是否需重新建立垂直预测模型。
[0033](13)检查用户是否终止预测过程,若是,则整个多属性事件预测过程结束;否则,转入步骤(3),读取事件流的下一个事件。
[0034]本发明的创新之处体现在:(1)设计并提供了一种称为多属性事件场MAEF的多属性事件存储结构,用于在内存中存储最新的事件流数据,并基于此提供了一种将来自传感器的不等间隔事件流变换为等间隔事件数据存储于多属性事件场的方法,用于构建预测模型的训练样本文件;(2)提供了针对多属性事件的双向建模与预测方法,包括:针对事件各属性的垂直建模与预测方法和针对事件类型的水平建模与预测方法;(3)针对不断更新的事件流,提供了基于ε -宽度误差的预测模型自适应修改策略,使得预测模型始终能够反映事件流数据的最新变化情况,提高预测准确性。
【专利附图】
【附图说明】
[0035]图1是本发明无线传感器环境下多属性事件的预测方法的总流程图;
[0036]图2是本发明将当前读取事件e的各属性值或其编码(对于非数值型)填入MAEF的流程图;
[0037]图3是本发明将当前读取事件e的各属性值或其编码(对于非数值型)填入MAEF的行粒度row的流程图;
[0038]图4是本发明对空缺行粒度进行填充的流程图;
[0039]图5是本发明为每个属性所对应的垂直预测模型选取参数的流程图;
[0040]图6是本发明为水平预测模型选取参数的流程图;
[0041]图7是本发明进行误差统计以决定是否需重新建立垂直预测模型的流程图。【具体实施方式】
[0042]如附图所示:
[0043](1)对传感器采集的事件数据的所有非数值型属性和事件类型进行数值编码,形成属性值/事件类型与其编码对应的编码文件输出至磁盘上存储;同时对相关变量进行初始化;
[0044]对每个非数值型属性进行数值编码,形成各自的编码文件存储于磁盘上,每个文件存储的是相应属性值与其编码的对应关系,每个非数值型属性的编码值为从I开始的连续自然数;如果事件类型也是非数值型,同样对事件类型进行编码,建立存储它们之间对应关系的编码文件存储于磁盘上;同时对多属性事件预测过程中的相关变量进行初始化,包括:将建立垂直预测模型的标志model_flag初始化为1,将水平预测模型已建立标志model_count初始化为O,将不准确预测计数inaccu_count初始化为O。
[0045]本发明针对多属性事件预测,提出双向建立预测模型的方法。其中,用来预测各属性值的预测模型称为垂直预测模型,用来预测事件类型的预测模型称为水平预测模型。
[0046]model_flag是判断是否需要建立垂直预测模型的标志变量。model_flag为I意味着需要执行建立垂直预测模型的过程;其值为O意味着不需执行建立垂直预测模型的过程,可利用已有的垂直预测模型直接进行预测。系统将根据预测模型的预测结果是否准确自适应地对m0del_flag的值进行重置,从而自适应地进行垂直预测模型重建。
[0047]由于水平预测模型不随时间发生变化,因此水平预测模型在整个事件预测过程中只建立一次。水平预测模型已建立标志modelcount为0,表示水平预测模型尚未建立;model_count为I,表示水平预测模型已经建立。
[0048]不准确预测计数inaccu_count是预测误差超出用户规定阈值的计数。
[0049](2)将所有的编码文件从磁盘读入内存,以方便构建MAEF时进行编码转换;同时在内存中建立多属性事件场结构MAEF,并将与MAEF相关的变量初始化,包括:刷新粒度总数]1_代;^6811初始化为O,MAEF中当前最新的行粒度current初始化为O,有效行计数eff_row_count初始化为O。
[0050]本发明为了建立多属性事件预测模型,设计了多属性事件场结构MAEF,并提供了基于MAEF将不等间隔事件转换为等间隔的方法以及基于MAEF构建预测模型训练样本的方法。MAEF是一个d行和n列构成的内存结构。每行对应一个等间隔多属性事件,事件场的长度d与用户建立预测模型需要的样本数量有关,可由用户指定。每列分别为多属性事件的n属性。多属性事件场结构MAEF如下表所示。
[0051]
【权利要求】
1.一种无线传感器环境下多属性事件的预测方法,其特征在于:包括以下步骤: (1)对传感器采集的事件数据的所有非数值型属性和事件类型进行数值编码,形成属性值/事件类型与其编码对应的编码文件输出至磁盘上存储;同时对相关变量进行初始化; (2)将所有的编码文件从磁盘读入内存,以方便构建多属性事件场MAEF时进行编码转换;同时在内存中建立多属性事件场结构MAEF,并将与MAEF相关的变量初始化; (3)从传感器事件流读取当前事件,将当前事件的各属性值或非数值型属性编码填入MAEF适当的行粒度,并根据当前事件在MAEF中的位置更新当前最新行粒度current和有效行计数 eff_row_count ; (4)判断在MAEF中是否已生成d行有效数据,即判断有效行计数eff_row_count^ d是否成立,若成立,则转入步骤(5);否则,转入步骤(3); (5)在MAEF中确定构建各预测模型训练样本文件的起始行粒度start和终止行粒度end ; (6)若建立垂直预测模型的标志model_flag=l,说明需建立预测模型,则基于MAEF中存储的各属性值和步骤(5)确定的起始行粒度start、终止行粒度end,在内存中构建每个属性所对应的垂直预测模型的样本空间,并按照LIBSVM的格式要求将其输出到磁盘上,形成与各属性对应的训练样本文件,转入步骤(7);否则,若标志model_flag Φ 1,则绕过建立预测模型的步骤,转入步骤(10); (7)针对多属性事件中的每个属性,分别建立其垂直预测模型,并置建立垂直预测模型的标志model_flag为O ; (8)若水平预测模型已经建立,即m0del_C0Unt=l,则转入步骤(10);否则,利用属性值和事件类型均已知的d条历史数据,构建水平预测模型的训练样本空间,并将其按照LIBSVM的格式要求输出至磁盘,形成水平预测模型的训练样本文件sensor_trans_train ; (9)建立水平预测模型,并将水平预测模型已建立标志置为I; (10)基于步骤(7)所建立的各属性所对应的垂直预测模型,对各属性下一个时间点的值进行预测; (11)首先以各属性的预测值作为输入形成水平预测模型的测试样本,输出到磁盘上,建立水平预测模型的测试数据文件;然后对事件类型进行预测;若事件类型为非数值型,需对照其编码对其进行转换,并将转换结果输出到输出设备上; (12)进行误差统计以决定是否需重建垂直预测模型,以对预测模型进行自适应修改; (13)检查用户是否终止预测过程,若是,则整个多属性事件预测过程结束;否则,转入步骤(3),读取事件流的下一个事件。
2.如权利要求1所述的无线传感器环境下多属性事件的预测方法,其特征在于步骤(I)所述对传感器采集的事件数据的所有非数值型属性和事件类型进行数值编码,形成属性值/事件类型与其编码对应的编码文件输出至磁盘上存储,是对每个非数值型属性进行数值编码,形成各自的编码文件存储于磁盘上,每个文件存储的是相应属性值与其编码的对应关系,每个非数值型属性的编码值为从I开始的连续自然数;如果事件类型也是非数值类型,同样对事件类型进行编码,建立存储它们之间对应关系的编码文件存储于磁盘上;同时对相关变量进行初始化,是对多属性事件预测过程中的相关变量进行初始化,包括:将建立垂直预测模型的标志model_flag初始化为I,将水平预测模型已建立标志model_count初始化为O,将不准确预测计数inaccu_count初始化为O,建立垂直预测模型的标志model_flag为I意味着需要执行建立垂直预测模型的过程,其值为O意味着不需执行建立垂直预测模型的过程,可利用已有的垂直预测模型直接进行预测,水平预测模型已建立标志model_count为O,表示水平预测模型尚未建立;model_count为I,表示水平预测模型已经建立,不准确预测计数inaCCu_Count是预测误差超出用户规定阈值的计数。
3.如权利要求1所述的无线传感器环境下多属性事件的预测方法,其特征在于步骤(2)所述在内存中建立多属性事件场结构MAEF,并将与MAEF相关的变量初始化,包括:刷新粒度总数n_refresh初始化为O,MAEF中当前最新的行粒度current初始化为O,有效行计数eff_row_count初始化为O ;所述MAEF是一个d行和η列构成的内存结构,每行对应一个等间隔多属性事件,事件场的长度d与用户建立预测模型需要的样本数量有关,可由用户指定,每列分别为多属性事件的η个属性,多属性事件场结构MAEF如下表:
4.如权利要求1所述的无线传感器环境下多属性事件的预测方法,其特征在于步骤(3)从传感器事件流读取当前事件,将当前各属性值或非数值型属性编码填入MAEF适当的行粒度,并根据当前事件在MAEF中的位置更新当前最新行粒度current和有效行计数eff_row—count ; 所述行粒度是用户指定的相邻两个事件之间的时间间隔,传感器实际采集的数据可能是非等间隔的,且可能在一个行粒度内有多个采集值,规定MAEF的每行对应一个行粒度,在一个行粒度内只存储一个事件,且只存储该粒度内最新到达的事件,这样,MAEF中每个事件及其属性的取值以行粒度为时间间隔,实现等间隔; 从传感器事件流读取最新到达的事件,将事件各属性值或非数值型属性编码填入MAEF适当的位置,以构建MAEF,对于在t时刻读取的事件e (t, attr/,attr2’,...,attrn’),将其填入MAEF的适当位置,构建MAEF的具体步骤包括: (3.1)计算t时刻新读取事件e在事件流中的行粒度e_g,公式如下:e_g=t/g+l,其中,g是用户指定的行粒度大小; (3.2)若e_g>d+n_refresh,说明又将有d个MAEF行粒度被“刷新”,则执行n_refresh=n—refresh+d ; (3.3)计算新读取事件e在MAEF中所在的行粒度row,公式如下:row=t/g+l_n_refresh ; (3.4)将事件e的各属性值或其编码填入MAEF的行粒度row ; 首先对照步骤(2)读入内存的各个编码文件,将事件e的η个属性中非数值型的转换为数值型,在此将e的n个数值型属性分别表示为attrp attr2,…,attrn ; 然后,针对行粒度row取值的三种情况,分别处理如下: ①若row=current,则说明新读入事件e所在的MAEF行粒度row与MAEF当前的最新行粒度current相同,此时,在该行粒度内用Btti^attr2,…,attrn覆盖原有值,即执行MAEF [row] [ 1] =Bttr1, MAEF [row] [2] =attr2,…,MAEF[row] [n] =attrn, current 值保持不变,有效行计数efT_row_count保持不变; ②若row=current+l,贝U说明新读入事件e在MAEF当前最新行粒度current的下一个粒度内,此时,直接将attr1; attr2,…,attrn填入MAEF的行粒度row的第I~η列中,即执行 MAEF [row] [1] =Bttr1, MAEF [row] [2] =attr2,…,MAEF [row] [n] =attrn,且将 current 变量更新,即执行current=row ;若有效行计数eff_row_count〈d,则将eff_row_count增I ; ③若row>current+l,则首先将attr^attr2,…,attrn填入MAEF的行粒度row的第I~η 列中,即执行 MAEF [row] [1] =Bttr1, MAEF [row] [2] =attr2,…,MAEF [row] [n] =attrn,且将current变量更新,即执行current=row ;同时对空缺行粒度进行填充, 若row>current+l,则说明可能传感器采集数据过于稀疏或者用户指定的行粒度过小出现事件在某行粒度内空缺的情况,这种情况下首先计算空缺行粒度的数量no_missing,公式为:no_missing=row-current-l,然后依次对每个空缺行粒度进行填充,设这no_missing个空缺行粒度中,第一个空缺行粒度为first_missing,填充no_missing个空缺行粒度及增加有效行计数efT_row_count的过程如下: (3.4.1)置当前的空缺行粒度row,=first_missing ; (3.4.2)若 row’ >first_missing+no_missing-l,说明空缺的 no_missing 个行粒度全部填充完毕,则判断有效行计数efT_row_count〈d是否成立,若成立,则将efT_row_count增加(no_missing+l),即执行 eff_row_count=eff_row_count+no_missing+l ;结束该空缺行粒度填充过程;否则,若row’ < first_missing+no_missing-l,则转入步骤(3.4.3);(3.4.3)设置 IOXn 的二维数组 att,并置:att[i] [j] =MAEF[row,_i][j],其中,10≥i≥1,n≥j≥1,按下边公式对空缺行row’进行填充:
5.如权利要求1所述的无线传感器环境下多属性事件的预测方法,其特征在于步骤(4)所述判断在MAEF中是否已生成d行建立预测模型的有效数据,即判断有效行计数row_count≥d是否成立,若成立,则转入步骤(5);否则,转入步骤(3); d是MAEF的长度,建立各预测模型将使用MAEF中最新的d行数据,称为有效数据或有效行。
6.如权利要求1所述的无线传感器环境下多属性事件的预测方法,其特征在于步骤(5)所述在MAEF中确定构建各预测模型训练样本文件的起始行粒度start和终止行粒度end,置 end=current,若 current=d,则置 Start=I ;否则,置 start=current+l ; 确定在构建MAEF的过程中最早被填入事件的行粒度,作为构建训练样本文件的起始数据start,确定MAEF中最新填入事件的行粒度,作为构建训练样本文件的终止数据end,利用最近d个行粒度内的事件数据按照它们发生的顺序构建预测模型的训练样本文件;变量current总是记载MAEF中当前最新的行粒度,因此,end=current, MAEF中的d个行粒度是循环使用的,当Current=Cl时,第I个行粒度中的事件是最早填入的,故置Start=I ;否则当current d时,第(current+1)个行粒度中的事件是最早填入的,故置start=current+l ; MAEF中从行粒度start开始到行粒度end为止的数据,将用来构建各预测模型的训练样本文件。
7.如权利要求1所述的无线传感器环境下多属性事件的预测方法,其特征在于步骤(6)若建立垂直预测模型的标志model_flag=l,则说明需建立垂直预测模型,则基于MAEF中存储的各属性值和步骤(5)确定的起始行粒度start、终止行粒度end,在内存中构建每个属性所对应的垂直预测模型的样本空间,并按照LIBSVM的格式要求将其输出到磁盘上,形成与各属性对应的训练样本文件,转入步骤(7);否则,若标志model_flag Φ 1,则绕过建立预测模型的步骤,转入步骤(10); 步骤(3)不断地读入事件流中新到达的事件,将事件各属性值或其编码填入MAEF中,当步骤(4)中判断MAEF中已生成d行建立预测模型的有效数据时,MAEF已经被最新d个行粒度内的事件属性或其编码填满,如果用attr/表示MAEF中第i个行粒度的第j个属性值,其中,
8.如权利要求1所述的无线传感器环境下多属性事件的预测方法,其特征在于步骤(7)针对多属性事件中的每个属性j (n ^≥j≥1),分别建立相应的垂直预测模型,并置建立垂直预测模型的标志model_flag为O ; 该步骤包括以下具体步骤: (7.1)为建立每个属性j对应的垂直预测模型确定相关参数; 建立预测模型时选择的参数直接影响预测模型的准确性,基于SVM的回归功能建立预测模型需要确定三个参数,即惩罚系数C、不敏感损失ε和核参数ga_a (这里采用径向基核函数),这三个参数太大或太小都会影响预测性能,其取值应在适当的范围内,这里,为3个参数确定较宽的取值范围:21≥gamma≥2_8,212≥C≥2-1,2≥1≥ε≥2_12,使用SVM建立预测模型的参数一般不超过上述范围, 该步骤用来为每个属性j (n ^ j ^ I)所对应的垂直预测模型选择确定gamma、C、ε这3个参数,具体步骤为: (7.1.1)在各自的取值范围内,为3个参数指定一些特定值:gamma=2' 2_7, 2^, - ,20, 2^0=2-1, 2°, 21,-,211, 212,ε =2-12, 2-11, 2,,- ,2-2, 2'针对每个参数的取值,形成多个(ga_a, C, ε )组合; (7.1.2)将MAEF中的数据从行粒度start开始至end结束的属性值attrs;, attrsj?...? attrs;按顺序分成 1、2、3、4、5 共 5 组,其中第 1、2、3、4 组长度为 dl=|_d/5」,第5组长度为d2=d-dlX4 ; (7.1.3)用1、2、3、4组作为训练数据,第5组数据作为测试数据,基于步骤(6)生成的样本空间,按照下面的格式分别生成名为sensor_para_longi_train_l的训练样本文件和名为sensor_para_longi_test_l的测试数据文件存储至磁盘上; (7.1.4)用1、2、3组作为训练数据,第4组数据作为测试数据,基于步骤(6)生成的样本空间,按照下面的格式分别生成名为sensor_para_longi_train_2的训练样本文件和名为sensor_para_longi_test_2的测试数据文件存储至磁盘上;(7.1.5)用1、2组作为训练数据,第3组数据作为测试数据,基于步骤(6)生成的样本空间,按照下面的格式分别生成名为sensor_para_longi_train_3的训练样本文件和名为sensor_para_longi_test_3的测试数据文件存储至磁盘上; (7.1.6)用第I组作为训练数据,第2组数据作为测试数据,基于步骤(6)生成的样本空间,按照下面的格式分别生成名为sensor_para_longi_train_4的训练样本文件和名为sensor_para_longi_test_4的测试数据文件存储至磁盘上; (7.1.7)针对每一组参数组合化&_&,(:,ε ),分别进行以下4次测试,并计算每次测试的误差及4次测试的平均误差; (7.1.7.1)对第5组数据进行测试,并计算测试误差error_longi_l ; 首先,执行以下命令建立针对第5组数据的测试模型:
svmtrain - s3 - t2 - g gamma - c C - p ε sensor—para—longi_train_lmodel_sensor_para—longi_l 其中,参数S设置为3,表明采用的是e-SVR;参数t设置为2,表明采用的是径向基核函数;参数g、C、P分别设置为gamma、C、ε ,对应一组参数组合(gamma, C, ε ) ;sensor_para_longi_train_l是步骤(7.1.3)基于1、2、3、4组数据生成的训练样本文件;model_sensor_para_longi_l是svmtrain命令生成的结果文件,是用来选择参数的测试模型; 然后,执行如下命令对第5组数据进行测试:
svmpredict sensor_para_longi_test_lmodel_sensor_para_longi_lsensor_para_longi_output_l 其中,sensor_para_longi_test_l是步骤(7.1.3)基于第5组数据生成的测试数据文件,model_sensor_para_longi_l是svmtrain命令生成的测试模型,sensor_para_longi_output_l是svmpredict命令生成的结果文件,存储的是对第5组数据Ittrsfltl、 attrsfM、attrsf1*3、…、altrsf1、altrs丨进行测试的结果,其文件长度为d2=d_4dl ; 最后,根据第5组的真实数据与文件sensor_para_longi_output_l中的测试结果数据计算测试误差,设sensor_para_longi_output_l中的数据依次为:test] ^ Iestj2、…、》则测试误差计算如下:
9.如权利要求1所述的无线传感器环境下多属性事件的预测方法,其特征在于步骤(8)若水平预测模型已经建立,即m0del_C0Unt=l,则转步骤(10);否则,利用属性值和事件类型均已知的d条历史数据,构建水平预测模型的训练样本空间,并将其按照LIBSVM的格式要求输出至磁盘,形成水平预测模型的训练样本文件sensor_trans_train ; 这里,用attrr/表示第i条历史数据的第j个属性值或非数值型属性编码,用Obji表示第i条历史数据的事件类型或其编码,对于非数值型事件类型,要对照步骤(2)读入内存的编码文件将其转换为数值编码,则可为水平预测模型构建如下由d个训练样本对(Xi,yi)构成的训练样本空间,其中,d ^ i ^ I,
10.如权利要求1所述的无线传感器环境下多属性事件的预测方法,其特征在于步骤(9)建立水平预测模型,并将水平预测模型已建立标志modelcount置为I ; 其中,建立水平预测模型的子步骤包括: (9.1)确定建立水平预测模型的参数; 选择水平预测模型的参数与选择垂直预测模型参数的思路相似,都是将训练数据分成.1、2、3、4、5共5组,然后针对每一参数组合,对某些组中的数据分别进行测试,计算几次测试的平均误差,选择平均误差最小的参数组合作为建立预测模型的参数,不同的是,水平预测模型的训练样本之间无时序依赖关系,因此,采取与垂直预测模型参数选择不同的测试方式,即分别用1、2、3、4组数据作为训练数据,测试第5组数据;用2、3、4、5组数据作为训练数据,测试第I组数据;用3、4、5、1组数据作为训练数据,测试第2组数据;用4、5、1、2组数据作为训练数据,测试第3组数据;用5、1、2、3组数据作为训练数据,测试第4组数据,具体步骤包括: (9.1.1)在各自的取值范围内,为3个参数指定一些特定值:gamma=2' 2_7, 2^, - ,20, 2^0=2-1, 2°, 21,-,211, 212,ε =2-12, 2-11, 2,,- ,2-2, 2'针对每个参数的取值,形成各种组合(ga_a, C, ε ); (9.1.2)将步骤(8)构建的水平预测模型的训练样本空间中的数据按顺序分成1、2、3、.4、5共5组,其中第1、2、3、4组长度为dl=[d/5」》第5组长度为d2=d_4dl,其中d为MAEF长度; (9.1.3)用1、2、3、4组作为训练数据,第5组作为测试数据,基于步骤(8)生成的训练样本空间,分别生成名为sensor_para_trans_train_l的训练样本文件和名为sensor_para_trans_test_l的测试数据文件输出至磁盘存储; (9.1.4)用2、3、4、5组作为训练数据,第I组作为测试数据,基于步骤(8)生成的训练样本空间,分别生成名为sensor_para_trans_train_2的训练样本文件和名为sensor_para_trans_test_2的测试数据文件输出至磁盘存储;(9.1.5)用3、4、5、1组作为训练数据,第2组作为测试数据,基于步骤(8)生成的训练样本空间,分别生成名为sensor_para_trans_train_3的训练样本文件和名为sensor_para_trans_test_3的测试数据文件输出至磁盘存储; (9.1.6)用4、5、1、2组作为训练数据,第3组作为测试数据,基于步骤(8)生成的训练样本空间,分别生成名为sensor_para_trans_train_4的训练样本文件和名为sensor_para_trans_test_4的测试数据文件输出至磁盘存储; (9.1.7)用5、1、2、3组作为训练数据,第4组作为测试数据,基于步骤(8)生成的训练样本空间,分别生成名为sensor_para_trans_train_5的训练样本文件和名为sensor_para_trans_test_5的测试数据文件输出至磁盘存储; (9.1.8)针对每一组参数组合化&1111^,(:,ε ),分别进行以下5次测试,并计算每次测试的误差及5次测试的平均误差; (9.1.8.1)对第 5组数据进行测试,并计算测试误差error_trans_l ; 首先,执行以下命令建立针对第5组数据的测试模型:
svmtrain - s3 - t2 - g gamma - c C - ρ ε sensor_para_trans_train_lmodel_sensor_para_trans_l 其中,参数s设置为3,表明采用的是e-SVR;参数t设置为2,表明采用的是径向基核函数;参数g、C、ρ分别设置为gamma、C、ε ,对应一组参数组合(gamma, C, ε ) ;sensor_para_trans_train_l是步骤(9.1.3)基于1、2、3、4组数据生成的训练样本文件;model_sensor_para_trans_l是svmtrain命令生成的结果文件,是用来选择参数的测试模型。 然后,执行如下命令对第5组数据进行测试:
svmpredict sensor_para_trans_test_lmodel_sensor_para_trans_lsensor_para_trans_output_l 其中,sensor_para_trans_test_l是步骤(9.1.3)基于第5组数据生成的测试数据文件,model_sensor_para_trans_l 是 svmtrain 命令生成的测试模型,sensor_para_trans_output_l是svmpredict命令生成的结果文件,存储的是对第5组数据obj4dl+1、obj4dl+2、…、Objd进行测试的结果,其文件长度为d2=d-4dl ; 最后,根据第5组的真实数据与文件sensor_para_trans_output_l中的测试结果数据计算测试误差,设 sensor_para_trans_output_l 中的数据依次为!testptestj^'test^,则测试误差计算如下:
11.如权利要求1所述的无线传感器环境下多属性事件的预测方法,其特征在于步骤(10)基于步骤(7)所建立的各属性所对应的垂直预测模型,对各属性下一个时间点的值进行预测; (10.1)针对每个属性j (η≥j≥1),基于当前MAEF中的数据和当前的起始行粒度start、终止行粒度end,生成测试样本文件sensor_longi_predict_j,内容和格式如下:
12.如权利要求1所述的无线传感器环境下多属性事件的预测方法,其特征在于步骤(11)首先以各属性的预测值作为输入形成水平预测模型的测试样本,输出到磁盘上,生成水平预测模型的测试数据文件;然后对事件类型进行预测;若事件类型为非数值型,需对照其编码对其进行转换,并将转换结果输出到输出设备上; (11.1)生成水平预测模型的测试数据文件sensor_trans_predict,格式如下:
13.如权利要求1所述的无线传感器环境下多属性事件的预测方法,其特征在于步骤(12)进行误差统计以决定是否需重新建立垂直预测模型,以根据预测的准确性及时对预测模型进行自适应的修改,其具体步骤包括: (12.1)计算ε -宽度误差loss ; 设事件类型或非数值型事件类型编码的真实值为y,预测值为夕,则ε -宽度误差loss可计算如下:
【文档编号】G06F19/00GK103745130SQ201410040442
【公开日】2014年4月23日 申请日期:2014年1月27日 优先权日:2014年1月27日
【发明者】林树宽, 杨礼国, 乔建忠 申请人:东北大学