CN103745130A - 无线传感器环境下多属性事件的预测方法 - Google Patents

无线传感器环境下多属性事件的预测方法 Download PDF

Info

Publication number
CN103745130A
CN103745130A CN201410040442.9A CN201410040442A CN103745130A CN 103745130 A CN103745130 A CN 103745130A CN 201410040442 A CN201410040442 A CN 201410040442A CN 103745130 A CN103745130 A CN 103745130A
Authority
CN
China
Prior art keywords
test
data
sensor
para
mrow
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201410040442.9A
Other languages
English (en)
Other versions
CN103745130B (zh
Inventor
林树宽
杨礼国
乔建忠
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Northeastern University China
Original Assignee
Northeastern University China
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Northeastern University China filed Critical Northeastern University China
Priority to CN201410040442.9A priority Critical patent/CN103745130B/zh
Publication of CN103745130A publication Critical patent/CN103745130A/zh
Application granted granted Critical
Publication of CN103745130B publication Critical patent/CN103745130B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

一种无线传感器环境下多属性事件的预测方法,该方法根据多属性事件流自身的特点,建立多属性事件场,将事件流转化为等间隔,用于构建预测模型的训练样本文件,在此基础上构建垂直和水平的双向预测模型,对多属性事件进行预测,并根据不准确预测的积累程度自适应地进行预测模型重建,使预测更具准确性,本发明可广泛用于事件监控、自然灾害监控与预警、健康监护、气候环境监测与预测等应用中。

Description

无线传感器环境下多属性事件的预测方法
技术领域
本发明属于计算机数据处理技术领域,具体涉及事件流数据处理技术,特别涉及一种无线传感器环境下多属性事件的预测方法。
背景技术
随着无线传感器在环境监控、物联网等诸多应用中被广泛使用,产生了大量的事件流数据,复杂事件处理(Complex Event Processing,CEP)技术越来越受到关注和重视,逐渐成为数据库领域继数据流之后新的研究热点。一个复杂事件的发生往往由多种因素决定,每一种因素都会对事件产生影响。因此,在无线传感器环境下,传感器往往对多个指标进行监测,多个指标的值或状态共同决定一个复杂事件的发生。因此,本发明将事件模式描述为:e(t,attr1,attr2,…,attrn),其中,attri(n≥i≥1)是n个指标的监测值或状态,这里称为n个属性,e为由n个属性共同决定的事件类型,即最终报告给用户的目标事件,t是事件e发生的时间。当n>1时,e称为多属性事件。与传统的数值型数据相比,事件数据具有一定的语义。如在基于无线传感器的森林火灾监控中,多属性事件state(t,humi,temp,pres,inte,wind)的语义为:在时刻t,传感器采集到的大气湿度为humi,空气温度为temp,大气压力为pres,光照强度为inte,风速为wind,此时传感器所在地的森林安全状态为state。通过对采集的多项指标进行处理,最终得出用户需要的森林安全状态,可以检测或预测森林火灾的发生,此即多属性事件处理。在无线传感器的实际应用中,事件数据通常包含多个属性,研究和处理多属性事件数据具有重要意义,可广泛用于事件监控、自然灾害监控与预警、健康监护、气候环境监测与预测等应用中。
在目前的复杂事件处理中,复杂事件检测技术研究的较多,已有许多模型和系统用于复杂事件检测,如以SASE为代表的基于自动机的模型、以ZStream为代表的基于匹配树的模型、以Sentinel为代表的基于有向图的模型和以HiFi为代表的基于Petri网的模型等。事件检测是对已经发生的事件进行检测;而事件预测是对未来将要发生的事件进行预测。事件预测可基于以往发生的事件获取即将发生或未来一段时间内可能会发生的事件,从而支持对即将发生的事件做出快速响应,对于无线传感器环境下的事件监控和预警具有重要意义。相比于复杂事件检测,复杂事件预测研究的较少,且目前的事件预测方法都未针对多属性事件数据。目前尚没有面向多属性事件的预测方法提出。
发明内容
针对多属性事件预测,本发明提供一种无线传感器环境下多属性事件预测方法,基于多属性事件场,自适应地建立双向预测模型,对多属性事件进行预测。该方法根据多属性事件流自身的特点,建立了等间隔存储最新事件数据的内存存储结构——多属性事件场(multi-attribute event field,MAEF),用于构建预测模型的训练样本文件,在此基础上,基于LIBSVM先后建立垂直和水平的双向预测模型,完成对多属性事件的预测,并可根据不准确预测的积累程度自适应地进行模型重建,从而使对多属性事件的预测更具准确性。SVM(support vectormachine)是1995年由Vapnik提出的一种基于结构风险最小化准则的统计学习方法,较其它机器学习方法具有泛化性能好、全局最优、小样本和高维数据处理等方面的优势。因此,本发明采用SVM建立双向预测模型。LIBSVM是台湾学者林智仁(Lin Chih_Jen)开发的一种简单易用、快速有效的SVM学习工具,支持SVM分类与回归,本发明使用的是其回归功能。
本发明方法的无线传感器多属性事件的预测方法,是通过不断地将事件流中最新的事件数据等间隔化并存储于MAEF,构建预测模型的训练样本文件,从而建立垂直和水平预测模型,实现对多属性事件的预测。其步骤包括:
(1)对传感器采集的事件数据的所有非数值型属性和事件类型进行数值编码,形成属性值/事件类型与其编码对应的编码文件输出至磁盘上存储;同时对相关变量进行初始化;
每个编码文件存储的是相应属性值/事件类型与其编码的对应关系。多属性事件预测过程中需初始化的变量包括:将建立垂直预测模型的标志model_flag初始化为1,水平预测模型已建立标志model_count初始化为0,不准确预测计数inaccu_count初始化为0。
(2)将所有的编码文件从磁盘读入内存,以方便构建MAEF时进行编码转换;同时在内存中建立多属性事件场结构MAEF,并将与MAEF相关的变量初始化;
本发明为了建立多属性事件预测模型,设计了多属性事件场结构MAEF。MAEF是一个d行和n列构成的内存结构。每行对应一个等间隔多属性事件,事件场的长度d与用户建立预测模型需要的样本数量有关,可由用户指定。每列分别为多属性事件的n个属性。
MAEF对于建立多属性事件预测模型的贡献如下:①事件流是无限到达的,而内存是有限的,将不断到达的所有的事件都存储于内存以建立预测模型的训练样本文件是不可能的。MAEF可支持在内存中存储一定量的最新到达的事件数据用于建立预测模型的训练样本文件,存储的事件数据的数量与用户需要的训练样本数量相关,可由用户指定;②MAEF可实现事件时间间隔的等距化。传感器采集数据的时间间隔不一定是等距的,给建立预测模型带来不便。基于MAEF可实现事件时间间隔的等距化,有利于建立预测模型的训练样本文件。③MAEF是循环使用的,支持对过期事件数据的淘汰和新事件数据的补充,使得基于此建立的预测模型能够跟上事件流的变化,从而提高预测的准确性;④对于传感器采集数据过密的情况,MAEF可减少数据冗余。
(3)从传感器事件流读取当前事件,将当前事件的各属性值或其编码(对于非数值型)填入MAEF适当的行粒度,并根据当前事件在MAEF中的位置更新当前最新行粒度current和有效行计数eff_row_count;
为了在构建MAEF的过程中使事件等时间间隔,本发明提出“行粒度”的概念。行粒度是用户指定的相邻两个事件之间的时间间隔。传感器实际采集的数据可能是非等间隔的,且可能在一个行粒度内有多个采集值。本发明方法规定MAEF的每行对应一个行粒度,在一个行粒度内只存储一个事件,且只存储该粒度内最新到达的事件。这样,MAEF不仅减少了事件数据冗余,而且MAEF中每个多属性事件以行粒度为时间间隔,实现等间隔。
对于非数值型事件属性,要对照步骤(2)读入内存的编码文件将其转换为数值型填入相应的行粒度。
(4)判断在MAEF中是否已生成d行有效数据,若已生成d行有效数据,则转入步骤(5);否则,转入步骤(3);
这里,d是MAEF的长度,建立预测模型将使用MAEF中最新的d行数据,这里称为有效数据或有效行。
(5)在MAEF中确定构建各预测模型训练样本文件的起始行粒度start和终止行粒度end。
随着事件流的不断到来,新到达的事件不断被写入MAEF。当MAEF的d行都被写满时,新到达事件将写入MAEF的第一行。也就是说,在本发明中,MAEF是被循环使用的,用以记载事件流中最新的d个事件属性值用来建立预测模型。因此,需要确定MAEF中最早被写入的行粒度start和最后被写入的行粒度end,以构建各预测模型的训练样本文件。
(6)若建立垂直预测模型的标志model_flag=1,说明需建立垂直预测模型,则基于MAEF中存储的各属性值和步骤(5)确定的起始行粒度start、终止行粒度end,在内存中构建每个属性所对应的垂直预测模型的样本空间,并按照LIBSVM的格式要求将其输出到磁盘上,形成与各属性对应的训练样本文件,转入步骤(7);否则,若标志model_flag≠1,则绕过建立预测模型的步骤,转入步骤(10);
在本发明提供的多属性事件预测方法中,将针对每个属性分别建立相应的预测模型。因事件各属性在MAEF中体现为各个列,因此,针对各属性建立的预测模型称为垂直预测模型,其数量与多属性事件属性的数量相等。为此,需为每个属性的预测模型构建其训练样本文件。在所构建的MAEF中,每个属性都可视为等时间间隔的时间序列,因此,每个属性都可按照时间序列的方式形成训练样本空间,并输出至磁盘上存储,形成相应的训练样本文件,以建立相应的预测模型。
(7)针对多属性事件的每个属性,分别建立其垂直预测模型,并置建立垂直预测模型的标志model_flag为0;
由于在构建MAEF的过程中已经将所有非数值属性都处理为数值型数据,因此本发明将使用LIBSVM中的回归功能建立各预测模型,具体使用的LIBSVM命令为svmtrain,在此之前首先要为各垂直预测模型选取合适的参数。标志model_flag为0意味着垂直预测模型已经建立,如果不准确预测计数未积累到一定程度,则对于新到达数据不需重新建立垂直预测模型,直接基于已有的预测模型进行预测即可。如果不准确预测计数积累到一定程度,标志model_flag将被重置为1,则对于新到达数据需重建垂直预测模型。
(8)若水平预测模型已经建立,即model_count=1,则转步骤(10);否则,利用属性值和事件类型均已知的d条历史数据,构建水平预测模型的训练样本空间,并将其按照LIBSVM的格式要求输出至磁盘,形成水平预测模型的训练样本文件sensor_trans_train;
本发明中,针对事件类型建立的预测模型称为水平预测模型,水平预测模型在多属性事件预测中只需建立一次。
(9)建立水平预测模型,并将水平预测模型已建立标志model_count置为1;
基于水平训练样本文件和LIBSVM工具建立水平预测模型。首先进行参数选择,然后使用LIBSVM工具中的svmtrain命令建立水平预测模型。
(10)基于步骤(7)所建立的各属性所对应的垂直预测模型,对各属性下一个时间点的值进行预测;
首先需建立符合LIBSVM格式要求的各垂直预测模型的测试数据文件输出到磁盘上,然后基于建立好的各个垂直预测模型和各测试文件,分别使用LIBSVM的svmpredict命令对各属性下一个时间点的值进行预测。
(11)首先以各属性的预测值作为输入形成水平预测模型的测试样本,输出到磁盘上,建立水平预测模型的测试数据文件;然后对事件类型进行预测;若事件类型为非数值型,需对照其编码对其进行转换,并将转换结果输出到输出设备上。
基于步骤(10)中预测的下一时间点的各属性值,形成符合LIBSVM格式要求的水平预测模型的测试数据文件存储于磁盘上,然后基于步骤(9)建立好的水平预测模型和测试文件对下一个时间点的事件类型进行预测。若事件类型为非数值型,本发明在建立预测模型时已经将其转换为数值类型,预测结果也为数值类型,因此,要对照其编码将其转换为原来的非数值型进行输出。
(12)进行误差统计以决定是否需重建垂直预测模型,以对预测模型进行自适应修改。
每当步骤(11)预测结束后,该步骤就对预测的准确度进行统计,当“不准确预测”累积到一定程度时,自适应地对垂直预测模型进行修改。本发明提出“ε-宽度误差”的概念,以定义什么是“不准确预测”。
首先根据事件类型的真实值或其编码(对于非数值型)、预测值以及用户给定的最小误差阈值ε计算ε-宽度误差loss;然后,根据loss值以及不准确预测计数inaccu_count决定是否需重新建立垂直预测模型。
(13)检查用户是否终止预测过程,若是,则整个多属性事件预测过程结束;否则,转入步骤(3),读取事件流的下一个事件。
本发明的创新之处体现在:(1)设计并提供了一种称为多属性事件场MAEF的多属性事件存储结构,用于在内存中存储最新的事件流数据,并基于此提供了一种将来自传感器的不等间隔事件流变换为等间隔事件数据存储于多属性事件场的方法,用于构建预测模型的训练样本文件;(2)提供了针对多属性事件的双向建模与预测方法,包括:针对事件各属性的垂直建模与预测方法和针对事件类型的水平建模与预测方法;(3)针对不断更新的事件流,提供了基于ε-宽度误差的预测模型自适应修改策略,使得预测模型始终能够反映事件流数据的最新变化情况,提高预测准确性。
附图说明
图1是本发明无线传感器环境下多属性事件的预测方法的总流程图;
图2是本发明将当前读取事件e的各属性值或其编码(对于非数值型)填入MAEF的流程图;
图3是本发明将当前读取事件e的各属性值或其编码(对于非数值型)填入MAEF的行粒度row的流程图;
图4是本发明对空缺行粒度进行填充的流程图;
图5是本发明为每个属性所对应的垂直预测模型选取参数的流程图;
图6是本发明为水平预测模型选取参数的流程图;
图7是本发明进行误差统计以决定是否需重新建立垂直预测模型的流程图。
具体实施方式
如附图所示:
(1)对传感器采集的事件数据的所有非数值型属性和事件类型进行数值编码,形成属性值/事件类型与其编码对应的编码文件输出至磁盘上存储;同时对相关变量进行初始化;
对每个非数值型属性进行数值编码,形成各自的编码文件存储于磁盘上,每个文件存储的是相应属性值与其编码的对应关系,每个非数值型属性的编码值为从1开始的连续自然数;如果事件类型也是非数值型,同样对事件类型进行编码,建立存储它们之间对应关系的编码文件存储于磁盘上;同时对多属性事件预测过程中的相关变量进行初始化,包括:将建立垂直预测模型的标志model_flag初始化为1,将水平预测模型已建立标志model_count初始化为0,将不准确预测计数inaccu_count初始化为0。
本发明针对多属性事件预测,提出双向建立预测模型的方法。其中,用来预测各属性值的预测模型称为垂直预测模型,用来预测事件类型的预测模型称为水平预测模型。
model_flag是判断是否需要建立垂直预测模型的标志变量。model_flag为1意味着需要执行建立垂直预测模型的过程;其值为0意味着不需执行建立垂直预测模型的过程,可利用已有的垂直预测模型直接进行预测。系统将根据预测模型的预测结果是否准确自适应地对model_flag的值进行重置,从而自适应地进行垂直预测模型重建。
由于水平预测模型不随时间发生变化,因此水平预测模型在整个事件预测过程中只建立一次。水平预测模型已建立标志model_count为0,表示水平预测模型尚未建立;model_count为1,表示水平预测模型已经建立。
不准确预测计数inaccu_count是预测误差超出用户规定阈值的计数。
(2)将所有的编码文件从磁盘读入内存,以方便构建MAEF时进行编码转换;同时在内存中建立多属性事件场结构MAEF,并将与MAEF相关的变量初始化,包括:刷新粒度总数n_refresh初始化为0,MAEF中当前最新的行粒度current初始化为0,有效行计数eff_row_count初始化为0。
本发明为了建立多属性事件预测模型,设计了多属性事件场结构MAEF,并提供了基于MAEF将不等间隔事件转换为等间隔的方法以及基于MAEF构建预测模型训练样本的方法。MAEF是一个d行和n列构成的内存结构。每行对应一个等间隔多属性事件,事件场的长度d与用户建立预测模型需要的样本数量有关,可由用户指定。每列分别为多属性事件的n个属性。多属性事件场结构MAEF如下表所示。
Figure BDA0000462899110000061
在计算机程序中,结构MAEF体现为一个二维数组,数组元素MAEF[i][j]表示行粒度i中属性j的值。
本发明中,多属性事件场MAEF用来存储事件流中最新d个行粒度的事件属性值(d是MAEF的长度),用以构建预测模型的训练样本文件。为保证MAEF中的行粒度是最新的,本发明循环使用MAEF的d个行粒度,通过对过期的行粒度进行覆盖而将其淘汰。当MAEF的d个行粒度都被填满后,事件流当前粒度内的最新事件将填入MAEF的第一个行粒度,先前d个MAEF行粒度将被“刷新”,这里的“刷新”并不是将先前的d个行粒度内的事件全部清空,只是填入新事件的行粒度被覆盖,其余的行粒度仍保留原来的数据。变量n_refresh用来记载MAEF中被“刷新”的粒度总数,初始值设为0,每当MAEF将被刷新时,n_refresh就增加d个行粒度。
变量current用来记载MAEF中当前最新的行粒度,初始化为0。
有效行计数eff_row_count是MAEF中可用来建立预测模型的行粒度计数,初始化为0。
(3)从传感器事件流读取当前事件,将当前各属性值或其编码(对于非数值型)填入MAEF适当的行粒度,并根据当前事件在MAEF中的位置更新当前最新行粒度current和有效行计数eff_row_count;
对于在t时刻读取的事件e(t,attr1',attr2',…,attrn'),将其填入MAEF的适当位置,从而构建MAEF的具体步骤包括:
(3.1)计算t时刻新读取事件e在事件流中的行粒度e_g,公式如下:e_g=t/g+1,其中,g是用户指定的行粒度大小。
(3.2)若e_g>d+n_refresh,说明又将有d个MAEF行粒度被“刷新”,则执行n_refresh=n_refresh+d;
(3.3)计算新读取事件e在MAEF中所在的行粒度row,公式如下:row=t/g+1-n_refresh;
(3.4)将事件e的各属性值或其编码(对于非数值型)填入MAEF的行粒度row。
首先对照步骤(2)读入内存的各个编码文件,将事件e的n个属性中非数值型的转换为数值型。在此将e的n个数值型属性值分别表示为attr1,attr2,…,attrn
然后,针对行粒度row取值的三种情况,分别处理如下:
①若row=current,则说明新读入事件e所在的MAEF行粒度row与MAEF当前的最新行粒度current相同。此时,在该行粒度内用attr1,attr2,…,attrn覆盖原有值,即执行MAEF[row][1]=attr1,MAEF[row][2]=attr2,…,MAEF[row][n]=attrn,current值保持不变,有效行计数eff_row_count保持不变;
②若row=current+1,则说明新读入事件e在MAEF当前最新行粒度current的下一个粒度内。此时,直接将attr1,attr2,…,attrn填入MAEF的行粒度row的第1~n列中,即执行MAEF[row][1]=attr1,MAEF[row][2]=attr2,…,MAEF[row][n]=attrn,且将current变量更新,即执行current=row;若有效行计数eff_row_count<d,则将eff_row_count增1;
③若row>current+1,则首先将attr1,attr2,…,attrn填入MAEF的行粒度row的第1~n列中,即执行MAEF[row][1]=attr1,MAEF[row][2]=attr2,…,MAEF[row][n]=attrn,且将current变量更新,即执行current=row;同时对空缺行粒度进行填充。
若row>current+1,则说明可能由于传感器采集数据过于稀疏或者用户指定的行粒度过小出现事件在某行粒度内空缺的情况,这种情况下,本发明首先计算空缺行粒度的数量no_missing,公式为:no_missing=row-current-1,然后依次对每个空缺行粒度进行填充。设这no_missing个空缺行粒度中,第一个空缺行粒度为first_missing。填充no_missing个空缺行粒度及增加有效行计数eff_row_count的过程如下:
(3.4.1)置当前的空缺行粒度row’=first_missing;
(3.4.2)若row’>first_missing+no_missing-1,说明空缺的no_missing个行粒度全部填充完毕,则判断有效行计数eff_row_count<d是否成立,若成立,则将eff_row_count增加(no_missing+1),即执行eff_row_count=eff_row_count+no_missing+1;结束该空缺行粒度填充过程;否则,若row’≤first_missing+no_missing-1,则转入步骤(3.4.3);
(3.4.3)设置10×n的二维数组att,并置:att[i][j]=MAEF[row’-i][j],其中,10≥i≥1,n≥j≥1,按下边公式对空缺行row’进行填充:
Figure BDA0000462899110000081
(3.4.4)置row’=row’+1;转入步骤(3.4.2);
(4)判断在MAEF中是否已生成d行建立预测模型的有效数据,即判断有效行计数eff_row_count≥d是否成立,若成立,则转入步骤(5);否则,转入步骤(3);
(5)在MAEF中确定构建各预测模型训练样本文件的起始行粒度start和终止行粒度end。置end=current。若current=d,则置start=1;否则,置start=current+1。
随着事件流的到来,如果我们能够确定在构建MAEF的过程中最早被填入事件的行粒度,作为构建训练样本文件的起始数据start,确定MAEF中最新填入事件的行粒度,作为构建训练样本文件的终止数据end,就可以利用最近d个行粒度内的事件数据按照它们发生的顺序构建预测模型的训练样本文件。
变量current总是记载MAEF中当前最新的行粒度,因此,end=current。
因为MAEF中的d个行粒度是循环使用的,因此,当current=d时,第1个行粒度中的事件是最早填入的,故置start=1;否则当current≠d时,第(current+1)个行粒度中的事件是最早填入的,故置start=current+1。
MAEF中从行粒度start开始到行粒度end为止的数据,将用来构建各预测模型的训练样本文件。
(6)若建立垂直预测模型的标志model_flag=1,说明需建立垂直预测模型,则基于MAEF中存储的各属性值和步骤(5)确定的起始行粒度start、终止行粒度end,在内存中构建每个属性所对应的垂直预测模型的样本空间,并按照LIBSVM的格式要求将其输出到磁盘上,形成与各属性对应的训练样本文件,转入步骤(7);否则,若标志model_flag≠1,则绕过建立预测模型的步骤,转入步骤(10);
步骤(3)不断地读入事件流中新到达的事件,将事件各属性值或其编码填入MAEF中,当步骤(4)中判断MAEF中已生成d行建立预测模型的有效数据时,MAEF已经被最新d个行粒度内的事件属性或其编码填满。如果用
Figure BDA0000462899110000091
表示MAEF中第i个行粒度的第j个属性值,其中,d≥i≥1,n≥j≥1,则
Figure BDA0000462899110000092
如下表所示。
Figure BDA0000462899110000093
依据MAEF中的数据和步骤(5)中确定的起始行粒度start、终止行粒度end,可为每个属性在内存中构建由(d-m)个训练样本对(xi,yi)构成的训练样本空间,其中,d-m≥i≥1,m为用户指定的嵌入维数。对于属性j,n≥j≥1,xi、yi可表示为:
Figure BDA0000462899110000094
y 1 y 2 . . . y d - m = attrs j m + 1 attrs j m + 2 . . . attrs j d
其中,
attrs j i = attrs j i + start - 1 , 1 &le; i &le; d - start + 1 attrs j i = attr j i - ( d - start + 1 ) , d &GreaterEqual; i > d - start + 1
也就是说,
Figure BDA0000462899110000097
是从开始,按照在MAEF的行粒度顺序循环排列到
Figure BDA0000462899110000099
对于属性j,n≥j≥1,基于上述构建的训练样本空间,按照LIBSVM的格式要求,生成名为sensor_longi_train_j的垂直预测模型训练样本文件输出至磁盘存储,其内容和格式如下:
Figure BDA0000462899110000101
对于事件的n个属性,共生成n个符合上述格式的训练样本文件存储至磁盘上,分别与相应的属性对应。每个文件中的样本数量为(d-m)。
(7)针对多属性事件中的每个属性j(n≥j≥1),分别建立相应的垂直预测模型,并置建立垂直预测模型的标志model_flag为0;
该步骤包括以下具体步骤:
(7.1)为建立每个属性j对应的垂直预测模型确定相关参数;
建立预测模型时选择的参数直接影响预测模型的准确性。基于SVM的回归功能建立预测模型需要确定三个参数,即惩罚系数C、不敏感损失ε和核参数gamma(这里采用径向基核函数)。这三个参数太大或太小都会影响预测性能,其取值应在适当的范围内。这里,为3个参数确定较宽的取值范围:21gamma≥2-8,212≥C≥2-1,2-1≥ε≥2-12,使用SVM建立预测模型的参数一般不超过上述范围。
该步骤用来为建立每个属性j(n≥j≥1)所对应的垂直预测模型选择确定gamma、C、ε这3个参数,具体步骤为:
(7.1.1)在各自的取值范围内,为3个参数指定一些特定值:gamma=2-8,2-7,2-6,…,20,21,C=2-1,20,21,…,211,212,ε=2-12,2-11,2-10,…,2-2,2-1,针对每个参数的取值,形成多个(gamma,C,ε)组合;
(7.1.2)将MAEF中的数据从行粒度start开始至end结束的属性值
Figure BDA0000462899110000102
按顺序分成1、2、3、4、5共5组,其中第1、2、3、4组长度为
Figure BDA0000462899110000103
第5组长度为d2=d-d1×4;
(7.1.3)用1、2、3、4组作为训练数据,第5组数据作为测试数据,基于步骤(6)生成的样本空间,按照下面的格式分别生成名为sensor_para_longi_train_1的训练样本文件和名为sensor_para_longi_test_1的测试数据文件存储至磁盘上。
其中,文件sensor_para_longi_train_1的内容和格式为:
Figure BDA0000462899110000111
文件sensor_para_longi_test_1的内容和格式为:
Figure BDA0000462899110000112
(7.1.4)用1、2、3组作为训练数据,第4组数据作为测试数据,基于步骤(6)生成的样本空间,按照下面的格式分别生成名为sensor_para_longi_train_2的训练样本文件和名为sensor_para_longi_test_2的测试数据文件存储至磁盘上;其中,文件sensor_para_longi_train_2的内容和格式为:
Figure BDA0000462899110000113
文件sensor_para_longi_test_2的内容和格式为:
Figure BDA0000462899110000121
(7.1.5)用1、2组作为训练数据,第3组数据作为测试数据,基于步骤(6)生成的样本空间,按照下面的格式分别生成名为sensor_para_longi_train_3的训练样本文件和名为sensor_para_longi_test_3的测试数据文件存储至磁盘上;
其中,文件sensor_para_longi_train_3的内容和格式为:
Figure BDA0000462899110000122
文件sensor_para_longi_test_3的内容和格式为:
Figure BDA0000462899110000123
(7.1.6)用第1组作为训练数据,第2组数据作为测试数据,基于步骤(6)生成的样本空间,按照下面的格式分别生成名为sensor_para_longi_train_4的训练样本文件和名为sensor_para_longi_test_4的测试数据文件存储至磁盘上;
其中,文件sensor_para_longi_train_4的内容和格式为:
文件sensor_para_longi_test_4的内容和格式为:
Figure BDA0000462899110000132
(7.1.7)针对每一组参数组合(gamma,C,ε),分别进行以下4次测试,并计算每次测试的误差及4次测试的平均误差;
(7.1.7.1)对第5组数据进行测试,并计算测试误差error_longi_1;
首先,执行以下命令建立针对第5组数据的测试模型:
svmtrain–s3–t2–g gamma–c C–pεsensor_para_longi_train_1model_sensor_para_longi_1
其中,参数s设置为3,表明采用的是e-SVR;参数t设置为2,表明采用的是径向基核函数;参数g、c、p分别设置为gamma、C、ε,对应一组参数组合(gamma,C,ε);sensor_para_longi_train_1是步骤(7.1.3)基于1、2、3、4组数据生成的训练样本文件;model_sensor_para_longi_1是svmtrain命令生成的结果文件,是用来选择参数的测试模型。
然后,执行如下命令对第5组数据进行测试:
svmpredict sensor_para_longi_test_1 model_sensor_para_longi_1 sensor_para_longi_output_1
其中,sensor_para_longi_test_1是步骤(7.1.3)基于第5组数据生成的测试数据文件,model_sensor_para_longi_1是svmtrain命令生成的测试模型,sensor_para_longi_output_1是svmpredict命令生成的结果文件,存储的是对第5组数据
Figure BDA0000462899110000142
进行测试的结果,其文件长度为d2=d-4d1。
最后,根据第5组的真实数据与文件sensor_para_longi_output_1中的测试结果数据计算测试误差。设sensor_para_longi_output_1中的数据依次为:则测试误差计算如下:
error _ longi _ 1 = 1 d 2 &Sigma; t = 1 d 2 | test j t - attrs j 4 d 1 + t |
(7.1.7.2)对第4组数据进行测试,并计算测试误差error_longi_2;
首先,执行以下命令建立针对第4组数据的测试模型:
svmtrain–s3–t2–g gamma–c C–pεsensor_para_longi_train_2model_sensor_para_longi_2
其中,sensor_para_longi_train_2是步骤(7.1.4)基于1、2、3组数据生成的训练样本文件,model_sensor_para_longi_2是该svmtrain命令生成的结果文件,是用来选择参数的测试模型。
然后,执行如下命令对第4组数据进行测试:
svmpredict sensor_para_longi_test_2 model_sensor_para_longi_2 sensor_para_longi_output_2
其中,sensor_para_longi_test_2是步骤(7.1.4)基于第4组数据生成的测试数据文件,model_sensor_para_longi_2是svmtrain命令生成的测试模型,sensor_para_longi_output_2是svmpredict命令生成的输出文件,存储的是对第4组数据
Figure BDA0000462899110000145
进行测试的结果,其文件长度为
Figure BDA0000462899110000147
最后,根据第4组的真实数据与文件sensor_para_longi_output_2中的测试结果数据计算测试误差。设sensor_para_longi_output_2中的数据依次为:
Figure BDA0000462899110000148
则测试误差计算如下:
error _ longi _ 2 = 1 d 1 &Sigma; t = 1 d 1 | test j t - attrs j 3 d 1 + t |
(7.1.7.3)对第3组数据进行测试,并计算测试误差error_longi_3;
首先,执行以下命令建立针对第3组数据的测试模型:
svmtrain–s3–t2–g gamma–c C–pεsensor_para_longi_train_3model_sensor_para_longi_3
其中,sensor_para_longi_train_3是步骤(7.1.5)基于1、2组数据生成的训练样本文件,model_sensor_para_longi_3是该svmtrain命令生成的结果文件,是用来选择参数的测试模型。
然后,执行如下命令对第3组数据进行测试:
svmpredict sensor_para_longi_test_3 model_sensor_para_longi_3 sensor_para_longi_output_3
其中,sensor_para_longi_test_3是步骤(7.1.5)基于第3组数据生成的测试数据文件,model_sensor_para_longi_3是svmtrain命令生成的测试模型,sensor_para_longi_output_3是svmpredict命令生成的输出文件,存储的是对第3组数据
Figure BDA0000462899110000151
进行测试的结果,其文件长度为
Figure BDA0000462899110000153
最后,根据第3组的真实数据与文件sensor_para_longi_output_3中的测试结果数据计算测试误差。设sensor_para_longi_output_3中的数据依次为:
Figure BDA0000462899110000154
则测试误差计算如下:
error _ longi _ 3 = 1 d 1 &Sigma; t = 1 d 1 | test j t - attrs j 2 d 1 + t |
(7.1.7.4)对第2组数据进行测试,并计算测试误差error_longi_4;
首先,执行以下命令建立针对第2组数据的测试模型:
svmtrain–s3–t2–g gamma–c C–pεsensor_para_longi_train_4model_sensor_para_longi_4
其中,sensor_para_longi_train_4是步骤(7.1.6)基于第1组数据生成的训练样本文件,model_sensor_para_longi_4是该svmtrain命令生成的结果文件,是用来选择参数的测试模型。
然后,执行如下命令对第2组数据进行测试:
svmpredict sensor_para_longi_test_4 model_sensor_para_longi_4 sensor_para_longi_output_4
其中,sensor_para_longi_test_4是步骤(7.1.6)基于第2组数据生成的测试数据文件,model_sensor_para_longi_4是svmtrain命令生成的测试模型,sensor_para_longi_output_4是svmpredict命令生成的输出文件,存储的是对第2组数据
Figure BDA0000462899110000156
Figure BDA0000462899110000157
进行测试的结果,其文件长度为
Figure BDA0000462899110000158
最后,根据第2组的真实数据与文件sensor_para_longi_output_4中的测试结果数据计算测试误差。设sensor_para_longi_output_4中的数据依次为:
Figure BDA0000462899110000159
则测试误差计算如下:
error _ longi _ 4 = 1 d 1 &Sigma; t = 1 d 1 | test j t - attrs j d 1 + t |
(7.1.7.5)计算上述4次测试的平均误差error_longi
上述步骤(7.1.7.1)~(7.1.7.4),分别针对第5组、第4组、第3组、第2组数据共进行了4次测试,测试误差分别为error_longi_1、error_longi_2、error_longi_3、error_longi_4。计算4次测试的平均误差error_longi如下:
error _ longi = 1 4 &Sigma; i = 1 4 error _ longi _ i
(7.1.8)对于各种(gamma,C,ε)组合,选择4次测试平均误差error_longi最小的那一组参数作为建立属性j对应的垂直预测模型的参数,记为
Figure BDA0000462899110000163
(7.2)建立每个属性j(n≥j≥1)对应的垂直预测模型,并置建立垂直预测模型的标志model_flag为0;
执行以下命令,为每个属性j(n≥j≥1)建立相应的预测模型:
Figure BDA0000462899110000164
其中,sensor_longi_train_j是步骤(6)为属性j生成的训练样本文件,model_sensor_longi_j是该svmtrain命令生成的结果文件,是该步骤建立的属性j所对应的垂直预测模型。
(8)若水平预测模型已经建立,即model_count=1,则转步骤(10);否则,利用属性值和事件类型均已知的d条历史数据,构建水平预测模型的训练样本空间,并将其按照LIBSVM的格式要求输出至磁盘,形成水平预测模型的训练样本文件sensor_trans_train;
这里,用
Figure BDA0000462899110000168
表示第i条历史数据的第j个属性值或其编码(对于非数值型),用obji表示第i条历史数据的事件类型或其编码(对于非数值型事件类型,要对照步骤(2)读入内存的编码文件将其转换为数值编码),则可为水平预测模型构建如下由d个训练样本对(xi,yi)构成的训练样本空间,其中,d≥i≥1。
Figure BDA0000462899110000165
y 1 y 2 . . . y d = obj 1 obj 2 . . . obj d
基于上述构建的训练样本空间,按照LIBSVM的格式要求,生成名为sensor_trans_train的水平预测模型训练样本文件输出至磁盘存储,其内容和格式如下:
Figure BDA0000462899110000167
(9)建立水平预测模型,并将水平预测模型已建立标志model_count置为1;
其中,建立水平预测模型的子步骤包括:
(9.1)确定建立水平预测模型的参数;
选择水平预测模型的参数与选择垂直预测模型参数的思路相似,都是将训练数据分成1、2、3、4、5共5组,然后针对每一参数组合,对某些组中的数据分别进行测试,计算几次测试的平均误差,选择平均误差最小的参数组合作为建立预测模型的参数。不同的是,水平预测模型的训练样本之间无时序依赖关系,因此,采取与垂直预测模型参数选择不同的测试方式,即分别用1、2、3、4组数据作为训练数据,测试第5组数据;用2、3、4、5组数据作为训练数据,测试第1组数据;用3、4、5、1组数据作为训练数据,测试第2组数据;用4、5、1、2组数据作为训练数据,测试第3组数据;用5、1、2、3组数据作为训练数据,测试第4组数据。具体步骤包括:
(9.1.1)在各自的取值范围内,为3个参数指定一些特定值:gamma=2-8,2-7,2-6,…,20,21,C=2-1,20,21,…,211,212,ε=2-12,2-11,2-10,…,2-2,2-1,针对每个参数的取值,形成各种组合(gamma,C,ε);
(9.1.2)将步骤(8)构建的水平预测模型的训练样本空间中的数据按顺序分成1、2、3、4、5共5组,其中第1、2、3、4组长度为
Figure BDA0000462899110000172
第5组长度为d2=d-4d1;
(9.1.3)用1、2、3、4组作为训练数据,第5组作为测试数据,基于步骤(8)生成的训练样本空间,分别生成名为sensor_para_trans_train_1的训练样本文件和名为sensor_para_trans_test_1的测试数据文件输出至磁盘存储;
其中,文件sensor_para_trans_train_1的内容和格式为:
Figure BDA0000462899110000173
文件sensor_para_trans_test_1的内容和格式为:
Figure BDA0000462899110000174
(9.1.4)用2、3、4、5组作为训练数据,第1组作为测试数据,基于步骤(8)生成的训练样本空间,分别生成名为sensor_para_trans_train_2的训练样本文件和名为sensor_para_trans_test_2的测试数据文件输出至磁盘存储;
其中,文件sensor_para_trans_train_2的内容和格式为:
Figure BDA0000462899110000182
文件sensor_para_trans_test_2的内容和格式为:
Figure BDA0000462899110000183
(9.1.5)用3、4、5、1组作为训练数据,第2组作为测试数据,基于步骤(8)生成的训练样本空间,分别生成名为sensor_para_trans_train_3的训练样本文件和名为sensor_para_trans_test_3的测试数据文件输出至磁盘存储;
其中,文件sensor_para_trans_train_3的内容和格式为:
Figure BDA0000462899110000184
文件sensor_para_trans_test_3的内容和格式为:
Figure BDA0000462899110000191
(9.1.6)用4、5、1、2组作为训练数据,第3组作为测试数据,基于步骤(8)生成的训练样本空间,分别生成名为sensor_para_trans_train_4的训练样本文件和名为sensor_para_trans_test_4的测试数据文件输出至磁盘存储;
其中,文件sensor_para_trans_train_4的内容和格式为:
Figure BDA0000462899110000192
文件sensor_para_trans_test_4的内容和格式为:
Figure BDA0000462899110000193
(9.1.7)用5、1、2、3组作为训练数据,第4组作为测试数据,基于步骤(8)生成的训练样本空间,分别生成名为sensor_para_trans_train_5的训练样本文件和名为sensor_para_trans_test_5的测试数据文件输出至磁盘存储;
其中,文件sensor_para_trans_train_5的内容和格式为:
Figure BDA0000462899110000201
文件sensor_para_trans_test_5的内容和格式为:
Figure BDA0000462899110000202
(9.1.8)针对每一组参数组合(gamma,C,ε),分别进行以下5次测试,并计算每次测试的误差及5次测试的平均误差;
(9.1.8.1)对第5组数据进行测试,并计算测试误差error_trans_1;
首先,执行以下命令建立针对第5组数据的测试模型:
svmtrain–s3–t2–g gamma–c C–pεsensor_para_trans_train_1model_sensor_para_trans_1
其中,参数s设置为3,表明采用的是e-SVR;参数t设置为2,表明采用的是径向基核函数;参数g、c、p分别设置为gamma、C、ε,对应一组参数组合(gamma,C,ε);sensor_para_trans_train_1是步骤(9.1.3)基于1、2、3、4组数据生成的训练样本文件;model_sensor_para_trans_1是svmtrain命令生成的结果文件,是用来选择参数的测试模型。
然后,执行如下命令对第5组数据进行测试:
svmpredict sensor_para_trans_test_1model_sensor_para_trans_1sensor_para_trans_output_1
其中,sensor_para_trans_test_1是步骤(9.1.3)基于第5组数据生成的测试数据文件,model_sensor_para_trans_1是svmtrain命令生成的测试模型,sensor_para_trans_output_1是svmpredict命令生成的结果文件,存储的是对第5组数据obj4d1+1、obj4d1+2、…、objd进行测试的结果,其文件长度为d2=d-4d1。
最后,根据第5组的真实数据与文件sensor_para_trans_output_1中的测试结果数据计算测试误差。设sensor_para_trans_output_1中的数据依次为:test1、test2、…、testd2,则测试误差计算如下:
error _ trans _ 1 = 1 d 2 &Sigma; i = 1 d 2 | test i - obj 4 d 1 + i |
(9.1.8.2)对第1组数据进行测试,并计算测试误差error_trans_2;
首先,执行以下命令建立针对第1组数据的测试模型:
svmtrain–s3–t2–g gamma–c C–pεsensor_para_trans_train_2model_sensor_para_trans_2
其中,sensor_para_trans_train_2是步骤(9.1.4)基于2、3、4、5组数据生成的训练样本文件;model_sensor_para_trans_2是svmtrain命令生成的结果文件,是用来选择参数的测试模型。
然后,执行如下命令对第1组数据进行测试:
svmpredict sensor_para_trans_test_2model_sensor_para_trans_2sensor_para_trans_output_2
其中,sensor_para_trans_test_2是步骤(9.1.4)基于第1组数据生成的测试数据文件,model_sensor_para_trans_2是svmtrain命令生成的测试模型,sensor_para_trans_output_2是svmpredict命令生成的结果文件,存储的是对第1组数据obj1、obj2、…、objd1进行测试的结果,其文件长度为
最后,根据第1组的真实数据与文件sensor_para_trans_output_2中的测试结果数据计算测试误差。设sensor_para_trans_output_2中的数据依次为:test1、test2、…、testd1,则测试误差计算如下:
error _ trans _ 2 = 1 d 1 &Sigma; i = 1 d 1 | test i - obj i |
(9.1.8.3)对第2组数据进行测试,并计算测试误差error_trans_3;
首先,执行以下命令建立针对第2组数据的测试模型:
svmtrain–s3–t2–g gamma–c C–pεsensor_para_trans_train_3model_sensor_para_trans_3
其中,sensor_para_trans_train_3是步骤(9.1.5)基于3、4、5、1组数据生成的训练样本文件;model_sensor_para_trans_3是svmtrain命令生成的结果文件,是用来选择参数的测试模型。
然后,执行如下命令对第2组数据进行测试:
svmpredict sensor_para_trans_test_3model_sensor_para_trans_3sensor_para_trans_output_3
其中,sensor_para_trans_test_3是步骤(9.1.5)基于第2组数据生成的测试数据文件,model_sensor_para_trans_3是svmtrain命令生成的测试模型,sensor_para_trans_output_3是svmpredict命令生成的结果文件,存储的是对第2组数据objd1+1、objd1+2、…、obj2d1进行测试的结果,其文件长度为
Figure BDA0000462899110000221
最后,根据第2组的真实数据与文件sensor_para_trans_output_3中的测试结果数据计算测试误差。设sensor_para_trans_output_3中的数据依次为:test1、test2、…、testd1,则测试误差计算如下:
error _ trans _ 3 = 1 d 1 &Sigma; i = 1 d 1 | test i - obj d 1 + i |
(9.1.8.4)对第3组数据进行测试,并计算测试误差error_trans_4;
首先,执行以下命令建立针对第3组数据的测试模型:
svmtrain–s3–t2–g gamma–c C–pεsensor_para_trans_train_4model_sensor_para_trans_4
其中,sensor_para_trans_train_4是步骤(9.1.6)基于4、5、1、2组数据生成的训练样本文件;model_sensor_para_trans_4是svmtrain命令生成的结果文件,是用来选择参数的测试模型。
然后,执行如下命令对第3组数据进行测试:
svmpredict sensor_para_trans_test_4model_sensor_para_trans_4sensor_para_trans_output_4
其中,sensor_para_trans_test_4是步骤(9.1.6)基于第3组数据生成的测试数据文件,model_sensor_para_trans_4是svmtrain命令生成的测试模型,sensor_para_trans_output_4是svmpredict命令生成的结果文件,存储的是对第3组数据obj2d1+1、obj2d1+2、…、obj3d1进行测试的结果,其文件长度为
最后,根据第3组的真实数据与文件sensor_para_trans_output_4中的测试结果数据计算测试误差。设sensor_para_trans_output_4中的数据依次为:test1、test2、…、testd1,则测试误差计算如下:
error _ trans _ 4 = 1 d 1 &Sigma; i = 1 d 1 | test i - obj 2 d 1 + i |
(9.1.8.5)对第4组数据进行测试,并计算测试误差error_trans_5;
首先,执行以下命令建立针对第4组数据的测试模型:
svmtrain–s3–t2–g gamma–c C–pεsensor_para_trans_train_5model_sensor_para_trans_5
其中,sensor_para_trans_train_5是步骤(9.1.7)基于5、1、2、3组数据生成的训练样本文件;model_sensor_para_trans_5是svmtrain命令生成的结果文件,是用来选择参数的测试模型。
然后,执行如下命令对第4组数据进行测试:
svmpredict sensor_para_trans_test_5model_sensor_para_trans_5sensor_para_trans_output_5
其中,sensor_para_trans_test_5是步骤(9.1.7)基于第4组数据生成的测试数据文件,model_sensor_para_trans_5是svmtrain命令生成的测试模型,sensor_para_trans_output_5是svmpredict命令生成的结果文件,存储的是对第4组数据obj3d1+1、obj3d1+2、…、obj4d1进行测试的结果,其文件长度为
Figure BDA0000462899110000231
最后,根据第4组的真实数据与文件sensor_para_trans_output_5中的测试结果数据计算测试误差。设sensor_para_trans_output_5中的数据依次为:test1、test2、…、testd1,则测试误差计算如下:
error _ trans _ 5 = 1 d 1 &Sigma; i = 1 d 1 | test i - obj 3 d 1 + i |
(9.1.8.6)计算上述5次测试的平均误差error_trans
上述步骤(9.1.8.1)~(9.1.8.5),分别针对第5组、第1组、第2组、第3组、第4组数据共进行了5次测试,测试误差分别为error_trans_1、error_trans_2、error_trans_3、error_trans_4、error_trans_5。计算5次测试的平均误差error_trans如下:
error _ trans = 1 5 &Sigma; i = 1 5 error _ trans _ i
(9.1.9)对于各种(gamma,C,ε)组合,选择5次测试平均误差error_trans最小的那一组参数作为建立水平预测模型的参数,记为
Figure BDA0000462899110000234
(9.2)建立水平预测模型,并将水平预测模型已建立的标志model_count置为1。
执行以下命令,建立水平预测模型:
Figure BDA0000462899110000235
其中,sensor_trans_train是步骤(8)生成的水平预测模型的训练样本文件,model_sensor_trans是该svmtrain命令所输出的文件,是该步骤所建立的水平预测模型。
(10)基于步骤(7)所建立的各属性所对应的垂直预测模型,对各属性下一个时间点的值进行预测;
(10.1)针对每个属性j(n≥j≥1),基于当前MAEF中的数据和当前的起始行粒度start、终止行粒度end,生成测试样本文件sensor_longi_predict_j,内容和格式如下:
Figure BDA0000462899110000236
其中, attrs j i = attr j i + start - 1 , 1 &le; i &le; d - start + 1 attrs j i = attr j i - ( d - start + 1 ) , d &GreaterEqual; i > d - start + 1
因为预测值未知,按照LIBSVM,其位置可为任意值,本发明设为0。
(10.2)针对每个属性j,执行以下命令,对其下一个时间点的属性值进行预测:
svmpredict sensor_longi_predict_j model_sensor_longi_j sensor_longi_output_j
其中,sensor_longi_predict_j是步骤(10.1)生成的测试样本文件,model_sensor_longi_j是步骤(7.2)为属性j建立的垂直预测模型,预测结果longi_j输出到文件sensor_longi_output_j中。
(11)首先以各属性的预测值作为输入形成水平预测模型的测试样本,输出到磁盘上,生成水平预测模型的测试数据文件;然后对事件类型进行预测;若事件类型为非数值型,需对照其编码对其进行转换,并将转换结果输出到输出设备上。
(11.1)生成水平预测模型的测试数据文件sensor_trans_predict,格式如下:
01:longi_12:longi_2…n:longi_n
其中,longi_j(n≥j≥1)是步骤(10.2)得到的每个属性下一个时间点的预测结果。
(11.2)执行以下命令,对下一个时间点的事件类型进行预测:
svmpredict sensor_trans_predict model_sensor_trans sensor_trans_output
其中,sensor_trans_predict是步骤(11.1)生成的水平预测模型的测试数据文件,model_sensor_trans是步骤(9.2)得到的水平预测模型,事件类型的预测结果输出在文件sensor_trans_output中。
(11.3)若事件类型为非数值型,在建立预测模型时将其转为了数值型,预测结果也为数值型,因此,需对照其编码将预测结果转换为非数值型,并将转换结果输出到输出设备上提供给用户。编码转换的具体方法为:先将预测结果按照四舍五入取最近的编码值,再对照步骤(2)读入内存的编码文件进行转换。
(12)进行误差统计以决定是否需重新建立垂直预测模型,以根据预测的准确性及时对预测模型进行自适应的修改。其具体步骤包括:
(12.1)计算ε-宽度误差loss
设事件类型或其编码(对于非数值型)的真实值为y,预测值为
Figure BDA0000462899110000242
则ε-宽度误差loss可计算如下:
loss = max ( 0 , | y - y ^ | - &epsiv; ) ,
其中,ε是用户给定的最小误差阈值。
上式的含义是:若误差
Figure BDA0000462899110000251
不超过用户指定的最小误差阈值ε,则认为是零误差,否则,为“不准确预测”,误差为
Figure BDA0000462899110000252
(12.2)若loss=0,则不需重新建立垂直预测模型,转入步骤(13);否则,不准确预测计数inaccu_count增1,转入步骤(12.3);
(12.3)判断是否需重新建立垂直预测模型,即判断inacu_count/d>γ是否成立,γ为用户指定的阈值参数。若成立,则说明不准确预测计数inacu_count在d中所占比例已超过规定的阈值γ,需要重新建立垂直预测模型,这种情况下,需将不准确预测计数inacu_count清零,并置建立垂直预测模型的标志model_flag为1;
(13)检查用户是否终止预测过程,若是,则整个多属性事件预测过程结束;否则,转入步骤(3),读取事件流的下一个事件。
以下是本发明用于森林安全状态预测的一个应用实例。
传统的森林火灾监控和预测的手段主要是通过人工巡护、航空巡护、视频监控、空间卫星监测,这些方法在森林安全状态预测方面所发挥的作用十分有限。将本发明的方法用于森林安全状态预测,通过对无线传感器网络传来的数据进行处理,对森林安全状态进行预测,相比于状态监控,可以尽早掌握森林防火状态,避免森林火灾的发生。
导致森林能否起火的重要因素是森林可燃物含水率,它的大小决定森林燃烧的难易程度,是进行森林火灾预测的重要因子。而大气湿度、空气温度、大气压力、光照强度和风速都直接或间接地影响着森林可燃物含水率。因此,基于无线传感器网络的森林安全状态预测的前提是要在森林中布设无线传感器,对大气湿度、空气温度、大气压力、光照强度和风速数据进行监测,然后通过网络将采集到的数据传输到计算机,应用本发明方法对数据进行处理,从而对森林安全状态进行预测。采用本发明方法将森林安全状态分为“安全状态”、“危险状态”和“起火状态”三种,通过对无线传感器网络传来的数据进行处理,对三种森林安全状态进行预测。因此,事件模式为state(t,humi,temp,pres,inte,wind),其语义为:在时刻t,传感器采集到的大气湿度为humi,空气温度为temp,大气压力为pres,光照强度为inte,风速为wind,传感器所在地的森林安全状态为state。基于上述传感器数据进行森林安全状态预测的具体步骤为:
(1)在森林安全状态预测中,森林安全状态为非数值型,因此要对其进行编码,形成以下形式的编码文件存储至磁盘上:
安全状态1
危险状态2
起火状态3
同时对数据处理中一些参数进行初始化,包括:建立垂直预测模型的标志model_flag初始化为1,水平预测模型已建立标志model_count初始化为0,不准确预测计数inaccu_count初始化为0。
(2)将编码文件从磁盘读入内存;同时在内存中建立下面的多属性事件场结构MAEF,并将与MAEF相关的变量初始化,包括:刷新粒度总数n_refresh初始化为0,MAEF中当前最新的行粒度current初始化为0,有效行计数eff_row_count初始化为0。
Figure BDA0000462899110000261
MAEF的长度d可由用户根据需要指定。
(3)从传感器事件流读取当前事件,按照发明内容的步骤(3)将读取的大气湿度humi、空气温度temp、大气压力pres、光照强度inte和风速wind填入MAEF适当的行粒度,同时根据当前事件在MAEF中的位置更新当前最新行粒度current和有效行计数eff_row_count;
(4)判断在MAEF中是否已生成d行建立预测模型的有效数据,若已生成,则转入步骤(5),否则转入步骤(3);
(5)在MAEF中确定构建各预测模型训练样本文件的起始行粒度start和终止行粒度end。
(6)若建立垂直预测模型的标志model_flag为1,则基于MAEF中存储的各属性值和步骤(5)确定的起始行粒度start、终止行粒度end,在内存中构建每个属性所对应的垂直预测模型的样本空间,并按照LIBSVM的格式要求将其输出到磁盘上,形成与各属性对应的训练样本文件,转入步骤(7);否则,若建立垂直预测模型的标志model_flag不为1,则转入步骤(10);
步骤(3)不断地读入事件流中新到达的事件,将事件属性值填入MAEF中,当步骤(4)中判断MAEF中已生成d行建立预测模型的有效数据时,MAEF已经被最新d个行粒度内的属性值填满,如下表所示。
大气湿度humi 空气温度temp 大气压力pres 光照强度inte 风速wind
humi1 temp1 pres1 inte1 wind1
humi2 temp2 pres2 inte2 wind2
humid tempd presd inted windd
依据MAEF中的数据和步骤(5)中确定的起始行粒度start、终止行粒度end,可为每个属性在内存中构建由(d-m)个训练样本对(xi,yi)构成的训练样本空间,其中,d-m≥i≥1,m为用户指定的嵌入维数。以属性humi为例,xi、yi可表示为:
Figure BDA0000462899110000271
y 1 y 2 . . . y d - m = humis m + 1 humis m + 2 . . . humis d
其中,
humis i = humi i + start - 1 , 1 &le; i &le; d - start + 1 humis i = humi i - ( d - start + 1 ) , d &GreaterEqual; i > d - start + 1
也就是说,humis1、humis2、…、humisd是从humistart开始,按照在MAEF的行粒度顺序循环排列到humiend
基于上述构建的训练样本空间,对于属性humi,按照LIBSVM的格式要求,生成名为sensor_longi_train_1的训练样本文件输出至磁盘存储,其内容和格式如下:
humism+11:humis12:humis2…m:humism
humism+21:humis22:humis3…m:humism+1
humism+31:humis32:humis4…m:humism+2
humisd-11:humisd-m-12:humisd-m…m:humisd-2
humisd1:humisd-m2:humisd-m+1…m:humisd-1
对于事件的5个属性,共生成5个符合上述格式的训练样本文件存储至磁盘上,分别与相应的属性对应。对于属性j(5≥j≥1),训练样本文件名为sensor_longi_train_j。每个文件中的样本数量为(d-m)。
(7)针对事件中的每个属性j,分别建立相应的垂直预测模型,并置建立垂直预测模型的标志model_flag为0;;
首先,按照“具体实施方式”中步骤(7.1)为每个属性j(5≥j≥1)选定建立其垂直预测模型的参数
Figure BDA0000462899110000281
然后,执行以下命令,为每个属性j(5≥j≥1)建立相应的垂直预测模型:
Figure BDA0000462899110000282
其中,sensor_longi_train_j是步骤(6)为属性j生成的训练样本文件,model_sensor_longi_j是该svmtrain命令生成的结果文件,是该步骤建立的属性j所对应的垂直预测模型。
(8)若水平预测模型已经建立,即model_count=1,则转步骤(10);否则,利用属性值和事件类型均已知的d条历史数据,构建水平预测模型的训练样本空间,并将其按照LIBSVM的格式要求输出至磁盘,形成水平预测模型的训练样本文件sensor_trans_train;
水平预测模型样本空间为:
x 1 x 2 . . . x d = humi _ s 1 temp _ s 1 pres _ s 1 inte _ s 1 wind _ s 1 humi _ s 2 temp _ s 2 pres _ s 2 inte _ s 2 wind _ s 2 . . . . . . . . . . . . . . . humi _ s d temp _ s d pres _ s d inte _ s d wind _ s d y 1 y 2 . . . y d = state 1 state 2 . . . state d
这里,对于d≥i≥1,humi_si、temp_si、pres_si、inte_si、wind_si和statei分别是同一时刻的大气湿度、空气温度、大气压力、光照强度、风速和森林安全状态编码值(森林安全状态要对照步骤(2)读入内存的编码文件将其转换为编码值)。
按照LIBSVM的格式要求生成名为sensor_trans_train的水平预测模型训练样本文件输出至磁盘存储,其内容和格式如下:
state11:humi_s12:temp_s13:pres_s14:inte_s15:wind_s1
state21:humi_s22:temp_s23:pres_s24:inte_s25:wind_s2
stated1:humi_sd2:temp_sd3:pres_sd4:inte_sd5:wind_sd
(9)建立水平预测模型,并将水平预测模型已建立标志model_count置为1;
首先,按照“具体实施方式”中步骤(9.1)选定建立水平预测模型的参数
Figure BDA0000462899110000285
然后,执行以下命令,建立水平预测模型:
Figure BDA0000462899110000286
其中,sensor_trans_train是步骤(8)生成的水平预测模型的训练样本文件,model_sensor_trans是该svmtrain命令所输出的文件,是该步骤所建立的水平预测模型。
(10)基于步骤(7)所建立的各属性所对应的垂直预测模型,对各属性下一个时间点的值进行预测;
以属性humi(大气湿度)为例,首先基于当前MAEF中的数据和当前的起始行粒度start、终止行粒度end,生成测试样本文件sensor_longi_predict_1,内容和格式如下:
01:humisd-m+12:humisd-m+2…m:humisd
因为预测值未知,按照LIBSVM,其位置可为任意值,本发明设为0。
然后,执行以下命令,对其下一个时间点的humi属性值进行预测:
svmpredict sensor_longi_predict_1model_sensor_longi_1sensor_longi_output_1
其中,sensor_longi_predict_1是测试样本文件,model_sensor_longi_1是步骤(7)为属性humi建立的垂直预测模型,预测结果longi_1输出到文件sensor_longi_output_1中。
依照上述做法,属性humi、temp、pres、inte、wind下一个时间点的预测值分别为longi_1、longi_2、longi_3、longi_4、longi_5。
(11)首先以各属性的预测值作为输入形成水平预测模型的测试样本,输出到磁盘上,生成水平预测模型的测试数据文件;然后对森林安全状态进行预测;最后对照其编码对其进行转换,并将转换结果输出到输出设备上。
首先,生成水平预测模型的测试数据文件sensor_trans_predict,格式如下:
01:longi_12:longi_23:longi_34:longi_45:longi_5
其中,longi_j(5≥j≥1)是步骤(10)得到的每个属性下一个时间点的预测结果。
然后,执行以下命令,对下一个时间点的森林安全状态进行预测:
svmpredict sensor_trans_predict model_sensor_trans sensor_trans_output
其中,sensor_trans_predict是水平预测模型的测试数据文件,model_sensor_trans是步骤(9)得到的水平预测模型,森林安全状态的预测结果输出在文件sensor_trans_output中。
最后,因为森林安全状态为非数值型,在数据处理中通过编码将其转为了数值型,预测结果也为数值型,因此,需对照步骤(2)读入的编码文件将预测结果转换为非数值型,并将转换结果输出到输出设备上提供给用户。具体的转换方法为:若其值小于1.5,则森林安全状态为“安全”;若其值大于等于1.5且小于2.5,则状态为“危险”;若其值大于或等于2.5,则状态为“起火”。
(12)进行误差统计以决定是否需重新建立垂直预测模型,根据预测的准确性决定是否将建立垂直预测模型的标志model_flag重置为1,从而对垂直预测模型进行自适应的修改。
(13)检查用户是否终止预测过程,若是,则整个多属性事件预测过程结束;否则,转入步骤(3),读取事件流的下一个事件。
在硬件环境为Intel双核3.16GHz CPU、4GB内存、500GB硬盘,软件环境为WindowsServer2008R2Service Pack1系统、.NET Framework4.0的情况下,对本发明方法的性能进行了测试。测试结果表明,当设置MAEF长度为300、行粒度大小为300ms时,垂直预测模型预测的各属性值超过80%在(1-10%)×rv至(1+10%)×rv范围内,其中,rv是属性的真实值,事件类型预测的准确率为82%,说明本发明方法所提供的多属性事件预测方法是有效的,具有较高准确性。测试中还发现,随着MAEF长度的增加,预测准确性会进一步提高。此外,对多属性事件预测的时间代价进行了测试,预测的总时间代价主要包括建立预测模型的时间代价和预测的时间代价,其中建立预测模型的代价在总时间中所占比例较大,但根据本发明方法,预测模型并不是每次都要建立,只是刚开始执行和预测误差积累到一定程度时才需要建立。测试表明,当MAEF长度为300、行粒度大小为300ms时,建立预测模型的时间不足200ms,平均每个事件类型的预测输出时间小于6ms。本发明支持预测模型的自适应修改,如果预测模型可以满足准确性的要求,不需重建,则只需不足6ms的时间就可以完成对一个时间点事件类型的预测,相比于测试中设置的行粒度大小300ms,完全可以满足事件预测的实时性需求;即使随着事件流的不断更新,需要重建预测模型,预测模型重建的时间加上预测的时间,即200ms+6ms=206ms,也完全可以满足实时性需求。测试还表明,预测总时间随着MAEF长度的增加而增加,因此,在实际应用中,MAEF长度要在预测准确性和预测的总时间代价之间进行折衷,用户设置的MAEF长度如果合适,就能花较小的时间代价获得较高的预测准确度。

Claims (13)

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=1,说明需建立预测模型,则基于MAEF中存储的各属性值和步骤(5)确定的起始行粒度start、终止行粒度end,在内存中构建每个属性所对应的垂直预测模型的样本空间,并按照LIBSVM的格式要求将其输出到磁盘上,形成与各属性对应的训练样本文件,转入步骤(7);否则,若标志model_flag≠1,则绕过建立预测模型的步骤,转入步骤(10);
(7)针对多属性事件中的每个属性,分别建立其垂直预测模型,并置建立垂直预测模型的标志model_flag为0;
(8)若水平预测模型已经建立,即model_count=1,则转入步骤(10);否则,利用属性值和事件类型均已知的d条历史数据,构建水平预测模型的训练样本空间,并将其按照LIBSVM的格式要求输出至磁盘,形成水平预测模型的训练样本文件sensor_trans_train;
(9)建立水平预测模型,并将水平预测模型已建立标志置为1;
(10)基于步骤(7)所建立的各属性所对应的垂直预测模型,对各属性下一个时间点的值进行预测;
(11)首先以各属性的预测值作为输入形成水平预测模型的测试样本,输出到磁盘上,建立水平预测模型的测试数据文件;然后对事件类型进行预测;若事件类型为非数值型,需对照其编码对其进行转换,并将转换结果输出到输出设备上;
(12)进行误差统计以决定是否需重建垂直预测模型,以对预测模型进行自适应修改;
(13)检查用户是否终止预测过程,若是,则整个多属性事件预测过程结束;否则,转入步骤(3),读取事件流的下一个事件。
2.如权利要求1所述的无线传感器环境下多属性事件的预测方法,其特征在于步骤(1)所述对传感器采集的事件数据的所有非数值型属性和事件类型进行数值编码,形成属性值/事件类型与其编码对应的编码文件输出至磁盘上存储,是对每个非数值型属性进行数值编码,形成各自的编码文件存储于磁盘上,每个文件存储的是相应属性值与其编码的对应关系,每个非数值型属性的编码值为从1开始的连续自然数;如果事件类型也是非数值类型,同样对事件类型进行编码,建立存储它们之间对应关系的编码文件存储于磁盘上;同时对相关变量进行初始化,是对多属性事件预测过程中的相关变量进行初始化,包括:将建立垂直预测模型的标志model_flag初始化为1,将水平预测模型已建立标志model_count初始化为0,将不准确预测计数inaccu_count初始化为0,建立垂直预测模型的标志model_flag为1意味着需要执行建立垂直预测模型的过程,其值为0意味着不需执行建立垂直预测模型的过程,可利用已有的垂直预测模型直接进行预测,水平预测模型已建立标志model_count为0,表示水平预测模型尚未建立;model_count为1,表示水平预测模型已经建立,不准确预测计数inaccu_count是预测误差超出用户规定阈值的计数。
3.如权利要求1所述的无线传感器环境下多属性事件的预测方法,其特征在于步骤(2)所述在内存中建立多属性事件场结构MAEF,并将与MAEF相关的变量初始化,包括:刷新粒度总数n_refresh初始化为0,MAEF中当前最新的行粒度current初始化为0,有效行计数eff_row_count初始化为0;所述MAEF是一个d行和n列构成的内存结构,每行对应一个等间隔多属性事件,事件场的长度d与用户建立预测模型需要的样本数量有关,可由用户指定,每列分别为多属性事件的n个属性,多属性事件场结构MAEF如下表:
Figure FDA0000462899100000021
在计算机程序中,结构MAEF体现为一个二维数组,数组元素MAEF[i][j]表示行粒度i中属性j的值;
多属性事件场MAEF用来存储事件流中最新d个行粒度的事件属性值(d是MAEF的长度),用以构建预测模型的训练样本文件,为保证MAEF中的行粒度是最新的,循环使用MAEF的d个行粒度,通过对过期的行粒度进行覆盖而将其淘汰,当MAEF的d个行粒度都被填满后,事件流当前粒度内的最新事件将填入MAEF的第一个行粒度,先前d个MAEF行粒度将被“刷新”,这里的“刷新”并不是将先前的d个行粒度内的事件全部清空,只是填入新事件的行粒度被覆盖,其余的行粒度仍保留原来的数据,变量n_refresh用来记载MAEF中被“刷新”的粒度总数,初始值设为0,每当MAEF将被刷新时,n_refresh就增加d个行粒度;
变量current用来记载MAEF中当前最新的行粒度,初始化为0,
有效行计数eff_row_count是MAEF中可用来建立预测模型的行粒度计数,初始化为0。
4.如权利要求1所述的无线传感器环境下多属性事件的预测方法,其特征在于步骤(3)从传感器事件流读取当前事件,将当前各属性值或非数值型属性编码填入MAEF适当的行粒度,并根据当前事件在MAEF中的位置更新当前最新行粒度current和有效行计数eff_row_count;
所述行粒度是用户指定的相邻两个事件之间的时间间隔,传感器实际采集的数据可能是非等间隔的,且可能在一个行粒度内有多个采集值,规定MAEF的每行对应一个行粒度,在一个行粒度内只存储一个事件,且只存储该粒度内最新到达的事件,这样,MAEF中每个事件及其属性的取值以行粒度为时间间隔,实现等间隔;
从传感器事件流读取最新到达的事件,将事件各属性值或非数值型属性编码填入MAEF适当的位置,以构建MAEF,对于在t时刻读取的事件e(t,attr1',attr2',…,attrn'),将其填入MAEF的适当位置,构建MAEF的具体步骤包括:
(3.1)计算t时刻新读取事件e在事件流中的行粒度e_g,公式如下:e_g=t/g+1,其中,g是用户指定的行粒度大小;
(3.2)若e_g>d+n_refresh,说明又将有d个MAEF行粒度被“刷新”,则执行n_refresh=n_refresh+d;
(3.3)计算新读取事件e在MAEF中所在的行粒度row,公式如下:row=t/g+1-n_refresh;
(3.4)将事件e的各属性值或其编码填入MAEF的行粒度row;
首先对照步骤(2)读入内存的各个编码文件,将事件e的n个属性中非数值型的转换为数值型,在此将e的n个数值型属性分别表示为attr1,attr2,…,attrn
然后,针对行粒度row取值的三种情况,分别处理如下:
①若row=current,则说明新读入事件e所在的MAEF行粒度row与MAEF当前的最新行粒度current相同,此时,在该行粒度内用attr1,attr2,…,attrn覆盖原有值,即执行MAEF[row][1]=attr1,MAEF[row][2]=attr2,…,MAEF[row][n]=attrn,current值保持不变,有效行计数eff_row_count保持不变;
②若row=current+1,则说明新读入事件e在MAEF当前最新行粒度current的下一个粒度内,此时,直接将attr1,attr2,…,attrn填入MAEF的行粒度row的第1~n列中,即执行MAEF[row][1]=attr1,MAEF[row][2]=attr2,…,MAEF[row][n]=attrn,且将current变量更新,即执行current=row;若有效行计数eff_row_count<d,则将eff_row_count增1;
③若row>current+1,则首先将attr1,attr2,…,attrn填入MAEF的行粒度row的第1~n列中,即执行MAEF[row][1]=attr1,MAEF[row][2]=attr2,…,MAEF[row][n]=attrn,且将current变量更新,即执行current=row;同时对空缺行粒度进行填充,
若row>current+1,则说明可能传感器采集数据过于稀疏或者用户指定的行粒度过小出现事件在某行粒度内空缺的情况,这种情况下首先计算空缺行粒度的数量no_missing,公式为:no_missing=row-current-1,然后依次对每个空缺行粒度进行填充,设这no_missing个空缺行粒度中,第一个空缺行粒度为first_missing,填充no_missing个空缺行粒度及增加有效行计数eff_row_count的过程如下:
(3.4.1)置当前的空缺行粒度row’=first_missing;
(3.4.2)若row’>first_missing+no_missing-1,说明空缺的no_missing个行粒度全部填充完毕,则判断有效行计数eff_row_count<d是否成立,若成立,则将eff_row_count增加(no_missing+1),即执行eff_row_count=eff_row_count+no_missing+1;结束该空缺行粒度填充过程;否则,若row’≤first_missing+no_missing-1,则转入步骤(3.4.3);
(3.4.3)设置10×n的二维数组att,并置:att[i][j]=MAEF[row’-i][j],其中,10≥i≥1,n≥j≥1,按下边公式对空缺行row’进行填充:
(3.4.4)置row’=row’+1;转入步骤(3.4.2)。
5.如权利要求1所述的无线传感器环境下多属性事件的预测方法,其特征在于步骤(4)所述判断在MAEF中是否已生成d行建立预测模型的有效数据,即判断有效行计数eff_row_count≥d是否成立,若成立,则转入步骤(5);否则,转入步骤(3);
d是MAEF的长度,建立各预测模型将使用MAEF中最新的d行数据,称为有效数据或有效行。
6.如权利要求1所述的无线传感器环境下多属性事件的预测方法,其特征在于步骤(5)所述在MAEF中确定构建各预测模型训练样本文件的起始行粒度start和终止行粒度end,置end=current,若current=d,则置start=1;否则,置start=current+1;
确定在构建MAEF的过程中最早被填入事件的行粒度,作为构建训练样本文件的起始数据start,确定MAEF中最新填入事件的行粒度,作为构建训练样本文件的终止数据end,利用最近d个行粒度内的事件数据按照它们发生的顺序构建预测模型的训练样本文件;
变量current总是记载MAEF中当前最新的行粒度,因此,end=current,MAEF中的d个行粒度是循环使用的,当current=d时,第1个行粒度中的事件是最早填入的,故置start=1;否则当current≠d时,第(current+1)个行粒度中的事件是最早填入的,故置start=current+1;
MAEF中从行粒度start开始到行粒度end为止的数据,将用来构建各预测模型的训练样本文件。
7.如权利要求1所述的无线传感器环境下多属性事件的预测方法,其特征在于步骤(6)若建立垂直预测模型的标志model_flag=1,则说明需建立垂直预测模型,则基于MAEF中存储的各属性值和步骤(5)确定的起始行粒度start、终止行粒度end,在内存中构建每个属性所对应的垂直预测模型的样本空间,并按照LIBSVM的格式要求将其输出到磁盘上,形成与各属性对应的训练样本文件,转入步骤(7);否则,若标志model_flag≠1,则绕过建立预测模型的步骤,转入步骤(10);
步骤(3)不断地读入事件流中新到达的事件,将事件各属性值或其编码填入MAEF中,当步骤(4)中判断MAEF中已生成d行建立预测模型的有效数据时,MAEF已经被最新d个行粒度内的事件属性或其编码填满,如果用attrj i表示MAEF中第i个行粒度的第j个属性值,其中,d≥i≥1,n≥j≥1,则
Figure FDA0000462899100000051
如下表:
Figure FDA0000462899100000052
依据MAEF中的数据和步骤(5)中确定的起始行粒度start、终止行粒度end,可为每个属性在内存中构建由(d-m)个训练样本对(xi,yi)构成的训练样本空间,其中,d-m≥i≥1,m为用户指定的嵌入维数,对于属性j,n≥j≥1,xi、yi可表示为:
Figure FDA0000462899100000053
y 1 y 2 . . . y d - m = attrs j m + 1 attrs j m + 2 . . . attrs j d
其中,
attrs j i = attrs j i + start - 1 , 1 &le; i &le; d - start + 1 attrs j i = attr j i - ( d - start + 1 ) , d &GreaterEqual; i > d - start + 1
Figure FDA0000462899100000061
是从
Figure FDA0000462899100000062
开始,按照在MAEF的行粒度顺序循环排列到
Figure FDA0000462899100000063
对于属性j,n≥j≥1,基于上述构建的训练样本空间,按照LIBSVM的格式要求,生成名为sensor_longi_train_j的垂直预测模型训练样本文件输出至磁盘存储;
对于事件的n个属性,共生成n个符合上述格式的训练样本文件存储至磁盘上,分别与相应的属性对应,每个文件中的样本数量为(d-m)。
8.如权利要求1所述的无线传感器环境下多属性事件的预测方法,其特征在于步骤(7)针对多属性事件中的每个属性j(n≥j≥1),分别建立相应的垂直预测模型,并置建立垂直预测模型的标志model_flag为0;
该步骤包括以下具体步骤:
(7.1)为建立每个属性j对应的垂直预测模型确定相关参数;
建立预测模型时选择的参数直接影响预测模型的准确性,基于SVM的回归功能建立预测模型需要确定三个参数,即惩罚系数C、不敏感损失ε和核参数gamma(这里采用径向基核函数),这三个参数太大或太小都会影响预测性能,其取值应在适当的范围内,这里,为3个参数确定较宽的取值范围:21≥gamma≥2-8,212≥C≥2-1,2-1≥ε≥2-12,使用SVM建立预测模型的参数一般不超过上述范围,
该步骤用来为每个属性j(n≥j≥1)所对应的垂直预测模型选择确定gamma、C、ε这3个参数,具体步骤为:
(7.1.1)在各自的取值范围内,为3个参数指定一些特定值:gamma=2-8,2-7,2-6,…,20,21,C=2-1,20,21,…,211,212,ε=2-12,2-11,2-10,…,2-2,2-1,针对每个参数的取值,形成多个(gamma,C,ε)组合;
(7.1.2)将MAEF中的数据从行粒度start开始至end结束的属性值
Figure FDA0000462899100000064
按顺序分成1、2、3、4、5共5组,其中第1、2、3、4组长度为第5组长度为d2=d-d1×4;
(7.1.3)用1、2、3、4组作为训练数据,第5组数据作为测试数据,基于步骤(6)生成的样本空间,按照下面的格式分别生成名为sensor_para_longi_train_1的训练样本文件和名为sensor_para_longi_test_1的测试数据文件存储至磁盘上;
(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)用第1组作为训练数据,第2组数据作为测试数据,基于步骤(6)生成的样本空间,按照下面的格式分别生成名为sensor_para_longi_train_4的训练样本文件和名为sensor_para_longi_test_4的测试数据文件存储至磁盘上;
(7.1.7)针对每一组参数组合(gamma,C,ε),分别进行以下4次测试,并计算每次测试的误差及4次测试的平均误差;
(7.1.7.1)对第5组数据进行测试,并计算测试误差error_longi_1;
首先,执行以下命令建立针对第5组数据的测试模型:
svmtrain–s3–t2–g gamma–c C–pεsensor_para_longi_train_1model_sensor_para_longi_1
其中,参数s设置为3,表明采用的是e-SVR;参数t设置为2,表明采用的是径向基核函数;参数g、c、p分别设置为gamma、C、ε,对应一组参数组合(gamma,C,ε);sensor_para_longi_train_1是步骤(7.1.3)基于1、2、3、4组数据生成的训练样本文件;model_sensor_para_longi_1是svmtrain命令生成的结果文件,是用来选择参数的测试模型;
然后,执行如下命令对第5组数据进行测试:
svmpredict sensor_para_longi_test_1model_sensor_para_longi_1sensor_para_longi_output_1
其中,sensor_para_longi_test_1是步骤(7.1.3)基于第5组数据生成的测试数据文件,model_sensor_para_longi_1是svmtrain命令生成的测试模型,sensor_para_longi_output_1是svmpredict命令生成的结果文件,存储的是对第5组数据
Figure FDA0000462899100000072
进行测试的结果,其文件长度为d2=d-4d1;
最后,根据第5组的真实数据与文件sensor_para_longi_output_1中的测试结果数据计算测试误差,设sensor_para_longi_output_1中的数据依次为:
Figure FDA0000462899100000073
则测试误差计算如下:
(7.1.7.2)对第4组数据进行测试,并计算测试误差error_longi_2;
首先,执行以下命令建立针对第4组数据的测试模型:
svmtrain–s3–t2–g gamma–c C–pεsensor_para_longi_train_2model_sensor_para_longi_2
其中,sensor_para_longi_train_2是步骤(7.1.4)基于1、2、3组数据生成的训练样本文件,model_sensor_para_longi_2是该svmtrain命令生成的结果文件,是用来选择参数的测试模型;
然后,执行如下命令对第4组数据进行测试:
svmpredict sensor_para_longi_test_2 model_sensor_para_longi_2 sensor_para_longi_output_2
其中,sensor_para_longi_test_2是步骤(7.1.4)基于第4组数据生成的测试数据文件,model_sensor_para_longi_2是svmtrain命令生成的测试模型,sensor_para_longi_output_2是svmpredict命令生成的输出文件,存储的是对第4组数据
Figure FDA0000462899100000081
Figure FDA0000462899100000082
进行测试的结果,其文件长度为
Figure FDA0000462899100000083
最后,根据第4组的真实数据与文件sensor_para_longi_output_2中的测试结果数据计算测试误差,设sensor_para_longi_output_2中的数据依次为:
Figure FDA0000462899100000084
则测试误差计算如下:
error _ longi _ 2 = 1 d 1 &Sigma; t = 1 d 1 | test j t - attrs j 3 d 1 + t |
(7.1.7.3)对第3组数据进行测试,并计算测试误差error_longi_3;
首先,执行以下命令建立针对第3组数据的测试模型:
svmtrain–s3–t2–g gamma–c C–pεsensor_para_longi_train_3model_sensor_para_longi_3
其中,sensor_para_longi_train_3是步骤(7.1.5)基于1、2组数据生成的训练样本文件,model_sensor_para_longi_3是该svmtrain命令生成的结果文件,是用来选择参数的测试模型;
然后,执行如下命令对第3组数据进行测试:
svmpredict sensor_para_longi_test_3 model_sensor_para_longi_3 sensor_para_longi_output_3
其中,sensor_para_longi_test_3是步骤(7.1.5)基于第3组数据生成的测试数据文件,model_sensor_para_longi_3是svmtrain命令生成的测试模型,sensor_para_longi_output_3是svmpredict命令生成的输出文件,存储的是对第3组数据
Figure FDA0000462899100000087
进行测试的结果,其文件长度为
Figure FDA0000462899100000088
最后,根据第3组的真实数据与文件sensor_para_longi_output_3中的测试结果数据计算测试误差,设sensor_para_longi_output_3中的数据依次为:则测试误差计算如下:
error _ longi _ 3 = 1 d 1 &Sigma; t = 1 d 1 | test j t - attrs j 2 d 1 + t |
(7.1.7.4)对第2组数据进行测试,并计算测试误差error_longi_4;
首先,执行以下命令建立针对第2组数据的测试模型:
svmtrain–s3–t2–g gamma–c C–pεsensor_para_longi_train_4model_sensor_para_longi_4
其中,sensor_para_longi_train_4是步骤(7.1.6)基于第1组数据生成的训练样本文件,model_sensor_para_longi_4是该svmtrain命令生成的结果文件,是用来选择参数的测试模型;
然后,执行如下命令对第2组数据进行测试:
svmpredict sensor_para_longi_test_4 model_sensor_para_longi_4 sensor_para_longi_output_4
其中,sensor_para_longi_test_4是步骤(7.1.6)基于第2组数据生成的测试数据文件,model_sensor_para_longi_4是svmtrain命令生成的测试模型,sensor_para_longi_output_4是svmpredict命令生成的输出文件,存储的是对第2组数据
Figure FDA0000462899100000092
Figure FDA0000462899100000093
进行测试的结果,其文件长度为
Figure FDA0000462899100000094
最后,根据第2组的真实数据与文件sensor_para_longi_output_4中的测试结果数据计算测试误差,设sensor_para_longi_output_4中的数据依次为:
Figure FDA0000462899100000095
则测试误差计算如下:
error _ longi _ 4 = 1 d 1 &Sigma; t = 1 d 1 | test j t - attrs j d 1 + t |
(7.1.7.5)计算上述4次测试的平均误差error_longi
上述步骤(7.1.7.1)~(7.1.7.4),分别针对第5组、第4组、第3组、第2组数据共进行了4次测试,测试误差分别为error_longi_1、error_longi_2、error_longi_3、error_longi_4,计算4次测试的平均误差error_longi如下:
error _ longi = 1 4 &Sigma; i = 1 4 error _ longi _ i
(7.1.8)对于各种(gamma,C,ε)组合,选择4次测试平均误差error_longi最小的那一组参数作为建立属性j对应的垂直预测模型的参数,记为
(7.2)建立每个属性j(n≥j≥1)对应的垂直预测模型,并置建立垂直预测模型的标志model_flag为0;
执行以下命令,为每个属性j(n≥j≥1)建立相应的预测模型:
Figure FDA0000462899100000101
其中,sensor_longi_train_j是步骤(6)为属性j生成的训练样本文件,model_sensor_longi_j是该svmtrain命令生成的结果文件,是该步骤建立的属性j所对应的垂直预测模型。
9.如权利要求1所述的无线传感器环境下多属性事件的预测方法,其特征在于步骤(8)若水平预测模型已经建立,即model_count=1,则转步骤(10);否则,利用属性值和事件类型均已知的d条历史数据,构建水平预测模型的训练样本空间,并将其按照LIBSVM的格式要求输出至磁盘,形成水平预测模型的训练样本文件sensor_trans_train;
这里,用attrrj i表示第i条历史数据的第j个属性值或非数值型属性编码,用obji表示第i条历史数据的事件类型或其编码,对于非数值型事件类型,要对照步骤(2)读入内存的编码文件将其转换为数值编码,则可为水平预测模型构建如下由d个训练样本对(xi,yi)构成的训练样本空间,其中,d≥i≥1,
Figure FDA0000462899100000102
y 1 y 2 . . . y d = obj 1 obj 2 . . . obj d
基于上述构建的训练样本空间,按照LIBSVM的格式要求,生成名为sensor_trans_train的水平预测模型训练样本文件输出至磁盘存储,其内容和格式如下:
Figure FDA0000462899100000104
10.如权利要求1所述的无线传感器环境下多属性事件的预测方法,其特征在于步骤(9)建立水平预测模型,并将水平预测模型已建立标志model_count置为1;
其中,建立水平预测模型的子步骤包括:
(9.1)确定建立水平预测模型的参数;
选择水平预测模型的参数与选择垂直预测模型参数的思路相似,都是将训练数据分成1、2、3、4、5共5组,然后针对每一参数组合,对某些组中的数据分别进行测试,计算几次测试的平均误差,选择平均误差最小的参数组合作为建立预测模型的参数,不同的是,水平预测模型的训练样本之间无时序依赖关系,因此,采取与垂直预测模型参数选择不同的测试方式,即分别用1、2、3、4组数据作为训练数据,测试第5组数据;用2、3、4、5组数据作为训练数据,测试第1组数据;用3、4、5、1组数据作为训练数据,测试第2组数据;用4、5、1、2组数据作为训练数据,测试第3组数据;用5、1、2、3组数据作为训练数据,测试第4组数据,具体步骤包括:
(9.1.1)在各自的取值范围内,为3个参数指定一些特定值:gamma=2-8,2-7,2-6,…,20,21,C=2-1,20,21,…,211,212,ε=2-12,2-11,2-10,…,2-2,2-1,针对每个参数的取值,形成各种组合(gamma,C,ε);
(9.1.2)将步骤(8)构建的水平预测模型的训练样本空间中的数据按顺序分成1、2、3、4、5共5组,其中第1、2、3、4组长度为
Figure FDA0000462899100000111
第5组长度为d2=d-4d1,其中d为MAEF长度;
(9.1.3)用1、2、3、4组作为训练数据,第5组作为测试数据,基于步骤(8)生成的训练样本空间,分别生成名为sensor_para_trans_train_1的训练样本文件和名为sensor_para_trans_test_1的测试数据文件输出至磁盘存储;
(9.1.4)用2、3、4、5组作为训练数据,第1组作为测试数据,基于步骤(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)针对每一组参数组合(gamma,C,ε),分别进行以下5次测试,并计算每次测试的误差及5次测试的平均误差;
(9.1.8.1)对第5组数据进行测试,并计算测试误差error_trans_1;
首先,执行以下命令建立针对第5组数据的测试模型:
svmtrain–s3–t2–g gamma–c C–pεsensor_para_trans_train_1model_sensor_para_trans_1
其中,参数s设置为3,表明采用的是e-SVR;参数t设置为2,表明采用的是径向基核函数;参数g、c、p分别设置为gamma、C、ε,对应一组参数组合(gamma,C,ε);sensor_para_trans_train_1是步骤(9.1.3)基于1、2、3、4组数据生成的训练样本文件;model_sensor_para_trans_1是svmtrain命令生成的结果文件,是用来选择参数的测试模型。
然后,执行如下命令对第5组数据进行测试:
svmpredict sensor_para_trans_test_1model_sensor_para_trans_1sensor_para_trans_output_1
其中,sensor_para_trans_test_1是步骤(9.1.3)基于第5组数据生成的测试数据文件,model_sensor_para_trans_1是svmtrain命令生成的测试模型,sensor_para_trans_output_1是svmpredict命令生成的结果文件,存储的是对第5组数据obj4d1+1、obj4d1+2、…、objd进行测试的结果,其文件长度为d2=d-4d1;
最后,根据第5组的真实数据与文件sensor_para_trans_output_1中的测试结果数据计算测试误差,设sensor_para_trans_output_1中的数据依次为:test1、test2、…、testd2,则测试误差计算如下:
error _ trans _ 1 = 1 d 2 &Sigma; i = 1 d 2 | test i - obj 4 d 1 + i |
(9.1.8.2)对第1组数据进行测试,并计算测试误差error_trans_2;
首先,执行以下命令建立针对第1组数据的测试模型:
svmtrain–s3–t2–g gamma–c C–pεsensor_para_trans_train_2model_sensor_para_trans_2
其中,sensor_para_trans_train_2是步骤(9.1.4)基于2、3、4、5组数据生成的训练样本文件;model_sensor_para_trans_2是svmtrain命令生成的结果文件,是用来选择参数的测试模型。
然后,执行如下命令对第1组数据进行测试:
svmpredict sensor_para_trans_test_2model_sensor_para_trans_2sensor_para_trans_output_2
其中,sensor_para_trans_test_2是步骤(9.1.4)基于第1组数据生成的测试数据文件,model_sensor_para_trans_2是svmtrain命令生成的测试模型,sensor_para_trans_output_2是svmpredict命令生成的结果文件,存储的是对第1组数据obj1、obj2、…、objd1进行测试的结果,其文件长度为
Figure FDA0000462899100000122
最后,根据第1组的真实数据与文件sensor_para_trans_output_2中的测试结果数据计算测试误差,设sensor_para_trans_output_2中的数据依次为:test1、test2、…、testd1,则测试误差计算如下:
error _ trans _ 2 = 1 d 1 &Sigma; i = 1 d 1 | test i - obj i |
(9.1.8.3)对第2组数据进行测试,并计算测试误差error_trans_3;
首先,执行以下命令建立针对第2组数据的测试模型:
svmtrain–s3–t2–g gamma–c C–pεsensor_para_trans_train_3model_sensor_para_trans_3
其中,sensor_para_trans_train_3是步骤(9.1.5)基于3、4、5、1组数据生成的训练样本文件;model_sensor_para_trans_3是svmtrain命令生成的结果文件,是用来选择参数的测试模型。
然后,执行如下命令对第2组数据进行测试:
svmpredict sensor_para_trans_test_3model_sensor_para_trans_3sensor_para_trans_output_3
其中,sensor_para_trans_test_3是步骤(9.1.5)基于第2组数据生成的测试数据文件,model_sensor_para_trans_3是svmtrain命令生成的测试模型,sensor_para_trans_output_3是svmpredict命令生成的结果文件,存储的是对第2组数据objd1+1、objd1+2、…、obj2d1进行测试的结果,其文件长度为
最后,根据第2组的真实数据与文件sensor_para_trans_output_3中的测试结果数据计算测试误差,设sensor_para_trans_output_3中的数据依次为:test1、test2、…、testd1,则测试误差计算如下:
error _ trans _ 3 = 1 d 1 &Sigma; i = 1 d 1 | test i - obj d 1 + i |
(9.1.8.4)对第3组数据进行测试,并计算测试误差error_trans_4;
首先,执行以下命令建立针对第3组数据的测试模型:
svmtrain–s3–t2–g gamma–c C–pεsensor_para_trans_train_4model_sensor_para_trans_4
其中,sensor_para_trans_train_4是步骤(9.1.6)基于4、5、1、2组数据生成的训练样本文件;model_sensor_para_trans_4是svmtrain命令生成的结果文件,是用来选择参数的测试模型。
然后,执行如下命令对第3组数据进行测试:
svmpredict sensor_para_trans_test_4model_sensor_para_trans_4sensor_para_trans_output_4
其中,sensor_para_trans_test_4是步骤(9.1.6)基于第3组数据生成的测试数据文件,model_sensor_para_trans_4是svmtrain命令生成的测试模型,sensor_para_trans_output_4是svmpredict命令生成的结果文件,存储的是对第3组数据obj2d1+1、obj2d1+2、…、obj3d1进行测试的结果,其文件长度为
Figure FDA0000462899100000141
最后,根据第3组的真实数据与文件sensor_para_trans_output_4中的测试结果数据计算测试误差,设sensor_para_trans_output_4中的数据依次为:test1、test2、…、testd1,则测试误差计算如下:
error _ trans _ 4 = 1 d 1 &Sigma; i = 1 d 1 | test i - obj 2 d 1 + i |
(9.1.8.5)对第4组数据进行测试,并计算测试误差error_trans_5;
首先,执行以下命令建立针对第4组数据的测试模型:
svmtrain–s3–t2–g gamma–c C–pεsensor_para_trans_train_5model_sensor_para_trans_5
其中,sensor_para_trans_train_5是步骤(9.1.7)基于5、1、2、3组数据生成的训练样本文件;model_sensor_para_trans_5是svmtrain命令生成的结果文件,是用来选择参数的测试模型。
然后,执行如下命令对第4组数据进行测试:
svmpredict sensor_para_trans_test_5model_sensor_para_trans_5sensor_para_trans_output_5
其中,sensor_para_trans_test_5是步骤(9.1.7)基于第4组数据生成的测试数据文件,model_sensor_para_trans_5是svmtrain命令生成的测试模型,sensor_para_trans_output_5是svmpredict命令生成的结果文件,存储的是对第4组数据obj3d1+1、obj3d1+2、…、obj4d1进行测试的结果,其文件长度为
Figure FDA0000462899100000143
最后,根据第4组的真实数据与文件sensor_para_trans_output_5中的测试结果数据计算测试误差,设sensor_para_trans_output_5中的数据依次为:test1、test2、…、testd1,则测试误差计算如下:
error _ trans _ 5 = 1 d 1 &Sigma; i = 1 d 1 | test i - obj 3 d 1 + i |
(9.1.8.6)计算上述5次测试的平均误差error_trans;
上述步骤(9.1.8.1)~(9.1.8.5),分别针对第5组、第1组、第2组、第3组、第4组数据共进行了5次测试,测试误差分别为error_trans_1、error_trans_2、error_trans_3、error_trans_4、error_trans_5,计算5次测试的平均误差error_trans如下:
error _ trans = 1 5 &Sigma; i = 1 5 error _ trans _ i
(9.1.9)对于各种(gamma,C,ε)组合,选择5次测试平均误差error_trans最小的那一组参数作为建立水平预测模型的参数,记为
(9.2)建立水平预测模型,并将水平预测模型已建立的标志model_count置为1;
执行以下命令,建立水平预测模型:
Figure FDA0000462899100000152
其中,sensor_trans_train是步骤(8)生成的水平预测模型的训练样本文件,model_sensor_trans是该svmtrain命令所输出的文件,是该步骤所建立的水平预测模型。
11.如权利要求1所述的无线传感器环境下多属性事件的预测方法,其特征在于步骤(10)基于步骤(7)所建立的各属性所对应的垂直预测模型,对各属性下一个时间点的值进行预测;
(10.1)针对每个属性j(n≥j≥1),基于当前MAEF中的数据和当前的起始行粒度start、终止行粒度end,生成测试样本文件sensor_longi_predict_j,内容和格式如下:
Figure FDA0000462899100000153
其中, attrs j i = attr j i + start - 1 , 1 &le; i &le; d - start + 1 attrs j i = attr j i - ( d - start + 1 ) , d &GreaterEqual; i > d - start + 1
因为预测值未知,按照LIBSVM,其位置可为任意值,本发明设为0;
(10.2)针对每个属性j,执行以下命令,对其下一个时间点的属性值进行预测:
svmpredict sensor_longi_predict_j model_sensor_longi_j sensor_longi_output_j
其中,sensor_longi_predict_j是步骤(10.1)生成的测试样本文件,model_sensor_longi_j是步骤(7.2)为属性j建立的垂直预测模型,预测结果longi_j输出到文件sensor_longi_output_j中。
12.如权利要求1所述的无线传感器环境下多属性事件的预测方法,其特征在于步骤(11)首先以各属性的预测值作为输入形成水平预测模型的测试样本,输出到磁盘上,生成水平预测模型的测试数据文件;然后对事件类型进行预测;若事件类型为非数值型,需对照其编码对其进行转换,并将转换结果输出到输出设备上;
(11.1)生成水平预测模型的测试数据文件sensor_trans_predict,格式如下:
01:longi_12:longi_2…n:longi_n
其中,longi_j(n≥j≥1)是步骤(10.2)得到的每个属性下一个时间点的预测结果;
(11.2)执行以下命令,对下一个时间点的事件类型进行预测:
svmpredict sensor_trans_predict model_sensor_trans sensor_trans_output
其中,sensor_trans_predict是步骤(11.1)生成的水平预测模型的测试数据文件,model_sensor_trans是步骤(9.2)得到的水平预测模型,事件类型的预测结果输出在文件sensor_trans_output中;
(11.3)若事件类型为非数值型,在建立预测模型时将其转为了数值型,预测结果也为数值型,因此,需对照其编码将预测结果转换为非数值型,并将转换结果输出到输出设备上提供给用户,编码转换的具体方法为:先将预测结果按照四舍五入取最近的编码值,再对照步骤(2)读入内存的编码文件进行转换。
13.如权利要求1所述的无线传感器环境下多属性事件的预测方法,其特征在于步骤(12)进行误差统计以决定是否需重新建立垂直预测模型,以根据预测的准确性及时对预测模型进行自适应的修改,其具体步骤包括:
(12.1)计算ε-宽度误差loss;
设事件类型或非数值型事件类型编码的真实值为y,预测值为
Figure FDA0000462899100000161
则ε-宽度误差loss可计算如下:
loss = max ( 0 , | y - y ^ | - &epsiv; ) ,
其中,ε是用户给定的最小误差阈值;
上式的含义是:若误差不超过用户指定的最小误差阈值ε,则认为是零误差,否则,为“不准确预测”,误差为
Figure FDA0000462899100000164
(12.2)若loss=0,则不需重新建立垂直预测模型,转入步骤(13);否则,不准确预测计数inaccu_count增1,转入步骤(12.3);
(12.3)判断是否需重新建立垂直预测模型,即判断inacu_count/d>γ是否成立,γ为用户指定的阈值参数,若成立,则说明不准确预测计数inacu_count在d中所占比例已超过规定的阈值γ,需要重新建立垂直预测模型,这种情况下,需将不准确预测计数inacu_count清零,并置建立垂直预测模型的标志model_flag为1。
CN201410040442.9A 2014-01-27 2014-01-27 无线传感器环境下多属性事件的预测方法 Active CN103745130B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410040442.9A CN103745130B (zh) 2014-01-27 2014-01-27 无线传感器环境下多属性事件的预测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410040442.9A CN103745130B (zh) 2014-01-27 2014-01-27 无线传感器环境下多属性事件的预测方法

Publications (2)

Publication Number Publication Date
CN103745130A true CN103745130A (zh) 2014-04-23
CN103745130B CN103745130B (zh) 2016-11-23

Family

ID=50502147

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410040442.9A Active CN103745130B (zh) 2014-01-27 2014-01-27 无线传感器环境下多属性事件的预测方法

Country Status (1)

Country Link
CN (1) CN103745130B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110766501A (zh) * 2018-07-27 2020-02-07 北京京东尚科信息技术有限公司 数据嵌套存储方法、装置、电子设备及计算机可读介质
US20230116246A1 (en) * 2021-09-27 2023-04-13 Indian Institute Of Technology Delhi System and method for optimizing data transmission in a communication network

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101883098A (zh) * 2010-06-18 2010-11-10 大连海事大学 Rfid设备网络环境下分布式复杂事件检测的系统及方法
US20100306709A1 (en) * 2009-05-29 2010-12-02 International Business Machines Corporation Event monitoring for complex event processing
CN102096658A (zh) * 2011-02-21 2011-06-15 北京航空航天大学 一种基于树形复杂事件处理过程中算子内部处理系统
CN102339256A (zh) * 2011-09-15 2012-02-01 东北大学 基于imf内外存置换策略的复杂事件检测方法
CN102724686A (zh) * 2012-05-17 2012-10-10 北京交通大学 一种适用于无线传感器网络的事件检测机制

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100306709A1 (en) * 2009-05-29 2010-12-02 International Business Machines Corporation Event monitoring for complex event processing
CN101883098A (zh) * 2010-06-18 2010-11-10 大连海事大学 Rfid设备网络环境下分布式复杂事件检测的系统及方法
CN102096658A (zh) * 2011-02-21 2011-06-15 北京航空航天大学 一种基于树形复杂事件处理过程中算子内部处理系统
CN102339256A (zh) * 2011-09-15 2012-02-01 东北大学 基于imf内外存置换策略的复杂事件检测方法
CN102724686A (zh) * 2012-05-17 2012-10-10 北京交通大学 一种适用于无线传感器网络的事件检测机制

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
冯智博等: "一种无线传感器网络中基于时空关联模型的高效实时事件检测技术", 《计算机研究与发展》 *
刘海龙等: "乱序RFID数据流上的复杂事件检测方法", 《西北工业大学学报》 *
徐传飞等: "高密度RFID 事件流上的复杂事件检测", 《东北大学学报(自然科学版)》 *
林树宽等: "基于核方法的非线性时间序列预浏建模", 《计算机工程》 *
许嘉等: "无线传感器网络中一种基于权重模型的高效事件检测技术", 《计算机研究与发展》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110766501A (zh) * 2018-07-27 2020-02-07 北京京东尚科信息技术有限公司 数据嵌套存储方法、装置、电子设备及计算机可读介质
CN110766501B (zh) * 2018-07-27 2024-08-20 北京京东尚科信息技术有限公司 数据嵌套存储方法、装置、电子设备及计算机可读介质
US20230116246A1 (en) * 2021-09-27 2023-04-13 Indian Institute Of Technology Delhi System and method for optimizing data transmission in a communication network
US12021928B2 (en) * 2021-09-27 2024-06-25 Indian Institute Of Technology Delhi System and method for optimizing data transmission in a communication network

Also Published As

Publication number Publication date
CN103745130B (zh) 2016-11-23

Similar Documents

Publication Publication Date Title
CN111639787B (zh) 一种基于图卷积网络的时空数据预测方法
Lorenz et al. Prospects and caveats of weighting climate models for summer maximum temperature projections over North America
Huang et al. An analytical comparison of four approaches to modelling the daily variability of solar irradiance using meteorological records
CN108009674A (zh) 基于cnn和lstm融合神经网络的空气pm2.5浓度预测方法
CN111445011B (zh) 一种基于气象和遥感数据的山火预警方法
CN105760970A (zh) 空气质量指数的预测方法
KR101575847B1 (ko) 북반구 기후 지수를 이용한 북서태평양 해수면 온도 변동성 진단 모델링 시스템 및 방법
CN115271181A (zh) 一种基于多模态数据融合的台风概率预报智能方法及装置
CN112101811A (zh) 一种供水管网爆管风险预测方法及系统
CN109508476A (zh) 基于深度网络学习的山火预测建模方法
CN115099328A (zh) 基于对抗网络的交通流量预测方法、系统、设备及存储介质
CN103745130B (zh) 无线传感器环境下多属性事件的预测方法
CN110260914B (zh) 一种基于测点时空特征的工程安全监测系统区域划分方法
CN116384565A (zh) 一种基于缺失数据填补的层次式大气臭氧浓度预测方法
CN111340975A (zh) 异常数据特征提取方法、装置、设备及存储介质
CN116811895B (zh) 车辆运行速度确定模型处理方法和车辆运行速度确定方法
KR102196820B1 (ko) 독성 가스 릴리스 모델링 장치 및 모델링 방법
CN116976227B (zh) 一种基于lstm机器学习的风暴增水预报方法及系统
CN116860824A (zh) 一种气象数据知识发现方法及系统
CN115829150A (zh) 一种积水预测系统
CN103337000A (zh) 一种油气集输系统安全监测预警方法
CN103886386A (zh) 一种基于空间网格预测人为火日发生概率的方法
CN113761806A (zh) 一种基于神经网络的大气能见度预测方法
Sharma et al. Hydrologic simulation approach for El Niño Southern Oscillation (ENSO)-affected watershed with limited raingauge stations
CN117828280B (zh) 基于物联网的消防信息智能采集及管理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant