亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

無(wú)線傳感器環(huán)境下多屬性事件的預(yù)測(cè)方法

文檔序號(hào):6537101閱讀:234來(lái)源:國(guó)知局
無(wú)線傳感器環(huán)境下多屬性事件的預(yù)測(cè)方法
【專利摘要】一種無(wú)線傳感器環(huán)境下多屬性事件的預(yù)測(cè)方法,該方法根據(jù)多屬性事件流自身的特點(diǎn),建立多屬性事件場(chǎng),將事件流轉(zhuǎn)化為等間隔,用于構(gòu)建預(yù)測(cè)模型的訓(xùn)練樣本文件,在此基礎(chǔ)上構(gòu)建垂直和水平的雙向預(yù)測(cè)模型,對(duì)多屬性事件進(jìn)行預(yù)測(cè),并根據(jù)不準(zhǔn)確預(yù)測(cè)的積累程度自適應(yīng)地進(jìn)行預(yù)測(cè)模型重建,使預(yù)測(cè)更具準(zhǔn)確性,本發(fā)明可廣泛用于事件監(jiān)控、自然災(zāi)害監(jiān)控與預(yù)警、健康監(jiān)護(hù)、氣候環(huán)境監(jiān)測(cè)與預(yù)測(cè)等應(yīng)用中。
【專利說(shuō)明】無(wú)線傳感器環(huán)境下多屬性事件的預(yù)測(cè)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計(jì)算機(jī)數(shù)據(jù)處理【技術(shù)領(lǐng)域】,具體涉及事件流數(shù)據(jù)處理技術(shù),特別涉及一種無(wú)線傳感器環(huán)境下多屬性事件的預(yù)測(cè)方法。
【背景技術(shù)】
[0002]隨著無(wú)線傳感器在環(huán)境監(jiān)控、物聯(lián)網(wǎng)等諸多應(yīng)用中被廣泛使用,產(chǎn)生了大量的事件流數(shù)據(jù),復(fù)雜事件處理(Complex Event Processing, CEP)技術(shù)越來(lái)越受到關(guān)注和重視,逐漸成為數(shù)據(jù)庫(kù)領(lǐng)域繼數(shù)據(jù)流之后新的研究熱點(diǎn)。一個(gè)復(fù)雜事件的發(fā)生往往由多種因素決定,每一種因素都會(huì)對(duì)事件產(chǎn)生影響。因此,在無(wú)線傳感器環(huán)境下,傳感器往往對(duì)多個(gè)指標(biāo)進(jìn)行監(jiān)測(cè),多個(gè)指標(biāo)的值或狀態(tài)共同決定一個(gè)復(fù)雜事件的發(fā)生。因此,本發(fā)明將事件模式描述為:e(t, attr:,attr2,…,attrn),其中,attA (η≥i≥I)是η個(gè)指標(biāo)的監(jiān)測(cè)值或狀態(tài),這里稱為η個(gè)屬性,e為由η個(gè)屬性共同決定的事件類型,即最終報(bào)告給用戶的目標(biāo)事件,t是事件e發(fā)生的時(shí)間。當(dāng)η>1時(shí),e稱為多屬性事件。與傳統(tǒng)的數(shù)值型數(shù)據(jù)相比,事件數(shù)據(jù)具有一定的語(yǔ)義。如在基于無(wú)線傳感器的森林火災(zāi)監(jiān)控中,多屬性事件state (t, humi, temp, pres, inte, wind)的語(yǔ)義為:在時(shí)刻t,傳感器采集到的大氣濕度為humi,空氣溫度為temp,大氣壓力為pres,光照強(qiáng)度為inte,風(fēng)速為wind,此時(shí)傳感器所在地的森林安全狀態(tài)為state。通過(guò)對(duì)采集的多項(xiàng)指標(biāo)進(jìn)行處理,最終得出用戶需要的森林安全狀態(tài),可以檢測(cè)或預(yù)測(cè)森林火災(zāi)的發(fā)生,此即多屬性事件處理。在無(wú)線傳感器的實(shí)際應(yīng)用中,事件數(shù)據(jù)通常包含多個(gè)屬性,研究和處理多屬性事件數(shù)據(jù)具有重要意義,可廣泛用于事件監(jiān)控、自然災(zāi)害監(jiān)控與預(yù)警、健康監(jiān)護(hù)、氣候環(huán)境監(jiān)測(cè)與預(yù)測(cè)等應(yīng)用中。
[0003]在目前的復(fù)雜事件處理中,復(fù)雜事件檢測(cè)技術(shù)研究的較多,已有許多模型和系統(tǒng)用于復(fù)雜事件檢測(cè),如以SASE為代表的基于自動(dòng)機(jī)的模型、以ZStream為代表的基于匹配樹(shù)的模型、以Sentinel為代表的基于有向圖的模型和以HiFi為代表的基于Petri網(wǎng)的模型等。事件檢測(cè)是對(duì)已經(jīng)發(fā)生的事件進(jìn)行檢測(cè);而事件預(yù)測(cè)是對(duì)未來(lái)將要發(fā)生的事件進(jìn)行預(yù)測(cè)。事件預(yù)測(cè)可基于以往發(fā)生的事件獲取即將發(fā)生或未來(lái)一段時(shí)間內(nèi)可能會(huì)發(fā)生的事件,從而支持對(duì)即將發(fā)生的事件做出快速響應(yīng),對(duì)于無(wú)線傳感器環(huán)境下的事件監(jiān)控和預(yù)警具有重要意義。相比于復(fù)雜事件檢測(cè),復(fù)雜事件預(yù)測(cè)研究的較少,且目前的事件預(yù)測(cè)方法都未針對(duì)多屬性事件數(shù)據(jù)。目前尚沒(méi)有面向多屬性事件的預(yù)測(cè)方法提出。

【發(fā)明內(nèi)容】

[0004]針對(duì)多屬性事件預(yù)測(cè),本發(fā)明提供一種無(wú)線傳感器環(huán)境下多屬性事件預(yù)測(cè)方法,基于多屬性事件場(chǎng),自適應(yīng)地建立雙向預(yù)測(cè)模型,對(duì)多屬性事件進(jìn)行預(yù)測(cè)。該方法根據(jù)多屬性事件流自身的特點(diǎn),建立了等間隔存儲(chǔ)最新事件數(shù)據(jù)的內(nèi)存存儲(chǔ)結(jié)構(gòu)——多屬性事件場(chǎng)(mult1-attribute event field, MAEF),用于構(gòu)建預(yù)測(cè)模型的訓(xùn)練樣本文件,在此基礎(chǔ)上,基于LIBSVM先后建立垂直和水平的雙向預(yù)測(cè)模型,完成對(duì)多屬性事件的預(yù)測(cè),并可根據(jù)不準(zhǔn)確預(yù)測(cè)的積累程度自適應(yīng)地進(jìn)行模型重建,從而使對(duì)多屬性事件的預(yù)測(cè)更具準(zhǔn)確性。SVM(support vector machine)是1995年由Vapnik提出的一種基于結(jié)構(gòu)風(fēng)險(xiǎn)最小化準(zhǔn)則的統(tǒng)計(jì)學(xué)習(xí)方法,較其它機(jī)器學(xué)習(xí)方法具有泛化性能好、全局最優(yōu)、小樣本和高維數(shù)據(jù)處理等方面的優(yōu)勢(shì)。因此,本發(fā)明采用SVM建立雙向預(yù)測(cè)模型。LIBSVM是臺(tái)灣學(xué)者林智仁(Lin Chih_Jen)開(kāi)發(fā)的一種簡(jiǎn)單易用、快速有效的SVM學(xué)習(xí)工具,支持SVM分類與回歸,本發(fā)明使用的是其回歸功能。
[0005]本發(fā)明方法的無(wú)線傳感器多屬性事件的預(yù)測(cè)方法,是通過(guò)不斷地將事件流中最新的事件數(shù)據(jù)等間隔化并存儲(chǔ)于MAEF,構(gòu)建預(yù)測(cè)模型的訓(xùn)練樣本文件,從而建立垂直和水平預(yù)測(cè)模型,實(shí)現(xiàn)對(duì)多屬性事件的預(yù)測(cè)。其步驟包括:
[0006](I)對(duì)傳感器采集的事件數(shù)據(jù)的所有非數(shù)值型屬性和事件類型進(jìn)行數(shù)值編碼,形成屬性值/事件類型與其編碼對(duì)應(yīng)的編碼文件輸出至磁盤上存儲(chǔ);同時(shí)對(duì)相關(guān)變量進(jìn)行初始化;
[0007]每個(gè)編碼文件存儲(chǔ)的是相應(yīng)屬性值/事件類型與其編碼的對(duì)應(yīng)關(guān)系。多屬性事件預(yù)測(cè)過(guò)程中需初始化的變量包括:將建立垂直預(yù)測(cè)模型的標(biāo)志modelflag初始化為1,水平預(yù)測(cè)模型已建立標(biāo)志model_count初始化為O,不準(zhǔn)確預(yù)測(cè)計(jì)數(shù)inaccu_count初始化為
O0
[0008](2)將所有的編碼文件從磁盤讀入內(nèi)存,以方便構(gòu)建MAEF時(shí)進(jìn)行編碼轉(zhuǎn)換;同時(shí)在內(nèi)存中建立多屬性事件場(chǎng)結(jié)構(gòu)MAEF,并將與MAEF相關(guān)的變量初始化;
[0009]本發(fā)明為了建立多屬性事件預(yù)測(cè)模型,設(shè)計(jì)了多屬性事件場(chǎng)結(jié)構(gòu)MAEF。MAEF是一個(gè)d行和η列構(gòu)成的內(nèi)存結(jié)構(gòu)。每行對(duì)應(yīng)一個(gè)等間隔多屬性事件,事件場(chǎng)的長(zhǎng)度d與用戶建立預(yù)測(cè)模型需要的樣本數(shù)量有關(guān),可由用戶指定。每列分別為多屬性事件的η個(gè)屬性。
[0010]MAEF對(duì)于建立多屬性事件預(yù)測(cè)模型的貢獻(xiàn)如下:①事件流是無(wú)限到達(dá)的,而內(nèi)存是有限的,將不斷到達(dá)的所有的事件都存儲(chǔ)于內(nèi)存以建立預(yù)測(cè)模型的訓(xùn)練樣本文件是不可能的。MAEF可支持在內(nèi)存中存儲(chǔ)一定量的最新到達(dá)的事件數(shù)據(jù)用于建立預(yù)測(cè)模型的訓(xùn)練樣本文件,存儲(chǔ)的事件數(shù)據(jù)的數(shù)量與用戶需要的訓(xùn)練樣本數(shù)量相關(guān),可由用戶指定;②MAEF可實(shí)現(xiàn)事件時(shí)間間隔的等距化。傳感器采集數(shù)據(jù)的時(shí)間間隔不一定是等距的,給建立預(yù)測(cè)模型帶來(lái)不便?;贛AEF可實(shí)現(xiàn)事件時(shí)間間隔的等距化,有利于建立預(yù)測(cè)模型的訓(xùn)練樣本文件。③MAEF是循環(huán)使用的,支持對(duì)過(guò)期事件數(shù)據(jù)的淘汰和新事件數(shù)據(jù)的補(bǔ)充,使得基于此建立的預(yù)測(cè)模型能夠跟上事件流的變化,從而提高預(yù)測(cè)的準(zhǔn)確性;④對(duì)于傳感器采集數(shù)據(jù)過(guò)密的情況,MAEF可減少數(shù)據(jù)冗余。
[0011](3)從傳感器事件流讀取當(dāng)前事件,將當(dāng)前事件的各屬性值或其編碼(對(duì)于非數(shù)值型)填入MAEF適當(dāng)?shù)男辛6?,并根?jù)當(dāng)前事件在MAEF中的位置更新當(dāng)前最新行粒度current和有效行計(jì)數(shù)eff_ row—count ;
[0012]為了在構(gòu)建MAEF的過(guò)程中使事件等時(shí)間間隔,本發(fā)明提出“行粒度”的概念。行粒度是用戶指定的相鄰兩個(gè)事件之間的時(shí)間間隔。傳感器實(shí)際采集的數(shù)據(jù)可能是非等間隔的,且可能在一個(gè)行粒度內(nèi)有多個(gè)采集值。本發(fā)明方法規(guī)定MAEF的每行對(duì)應(yīng)一個(gè)行粒度,在一個(gè)行粒度內(nèi)只存儲(chǔ)一個(gè)事件,且只存儲(chǔ)該粒度內(nèi)最新到達(dá)的事件。這樣,MAEF不僅減少了事件數(shù)據(jù)冗余,而且MAEF中每個(gè)多屬性事件以行粒度為時(shí)間間隔,實(shí)現(xiàn)等間隔。
[0013]對(duì)于非數(shù)值型事件屬性,要對(duì)照步驟(2)讀入內(nèi)存的編碼文件將其轉(zhuǎn)換為數(shù)值型填入相應(yīng)的行粒度。[0014](4)判斷在MAEF中是否已生成d行有效數(shù)據(jù),若已生成d行有效數(shù)據(jù),則轉(zhuǎn)入步驟
(5);否則,轉(zhuǎn)入步驟(3);
[0015]這里,d是MAEF的長(zhǎng)度,建立預(yù)測(cè)模型將使用MAEF中最新的d行數(shù)據(jù),這里稱為有效數(shù)據(jù)或有效行。
[0016](5)在MAEF中確定構(gòu)建各預(yù)測(cè)模型訓(xùn)練樣本文件的起始行粒度start和終止行粒度 end。
[0017]隨著事件流的不斷到來(lái),新到達(dá)的事件不斷被寫入MAEF。當(dāng)MAEF的d行都被寫滿時(shí),新到達(dá)事件將寫入MAEF的第一行。也就是說(shuō),在本發(fā)明中,MAEF是被循環(huán)使用的,用以記載事件流中最新的d個(gè)事件屬性值用來(lái)建立預(yù)測(cè)模型。因此,需要確定MAEF中最早被寫入的行粒度start和最后被寫入的行粒度end,以構(gòu)建各預(yù)測(cè)模型的訓(xùn)練樣本文件。
[0018](6)若建立垂直預(yù)測(cè)模型的標(biāo)志model_flag=l,說(shuō)明需建立垂直預(yù)測(cè)模型,則基于MAEF中存儲(chǔ)的各屬性值和步驟(5)確定的起始行粒度start、終止行粒度end,在內(nèi)存中構(gòu)建每個(gè)屬性所對(duì)應(yīng)的垂直預(yù)測(cè)模型的樣本空間,并按照LIBSVM的格式要求將其輸出到磁盤上,形成與各屬性對(duì)應(yīng)的訓(xùn)練樣本文件,轉(zhuǎn)入步驟(7);否則,若標(biāo)志model_flag Φ I,則繞過(guò)建立預(yù)測(cè)模型的步驟,轉(zhuǎn)入步驟(10);
[0019]在本發(fā)明提供的多屬性事件預(yù)測(cè)方法中,將針對(duì)每個(gè)屬性分別建立相應(yīng)的預(yù)測(cè)模型。因事件各屬性在MAEF中體現(xiàn)為各個(gè)列,因此,針對(duì)各屬性建立的預(yù)測(cè)模型稱為垂直預(yù)測(cè)模型,其數(shù)量與多屬性事件屬性的數(shù)量相等。為此,需為每個(gè)屬性的預(yù)測(cè)模型構(gòu)建其訓(xùn)練樣本文件。在所構(gòu)建的MAEF中,每個(gè)屬性都可視為等時(shí)間間隔的時(shí)間序列,因此,每個(gè)屬性都可按照時(shí)間序列的方式形成訓(xùn)練樣本空間,并輸出至磁盤上存儲(chǔ),形成相應(yīng)的訓(xùn)練樣本文件,以建立相應(yīng)的預(yù)測(cè)模型。
[0020](7)針對(duì)多屬性事件的每個(gè)屬性,分別建立其垂直預(yù)測(cè)模型,并置建立垂直預(yù)測(cè)模型的標(biāo)志model_flag為O ;
[0021]由于在構(gòu)建MAEF的過(guò)程中已經(jīng)將所有非數(shù)值屬性都處理為數(shù)值型數(shù)據(jù),因此本發(fā)明將使用LIBSVM中的回歸功能建立各預(yù)測(cè)模型,具體使用的LIBSVM命令為svmtrain,在此之前首先要為各垂直預(yù)測(cè)模型選取合適的參數(shù)。標(biāo)志m0del_flag為O意味著垂直預(yù)測(cè)模型已經(jīng)建立,如果不準(zhǔn)確預(yù)測(cè)計(jì)數(shù)未積累到一定程度,則對(duì)于新到達(dá)數(shù)據(jù)不需重新建立垂直預(yù)測(cè)模型,直接基于已有的預(yù)測(cè)模型進(jìn)行預(yù)測(cè)即可。如果不準(zhǔn)確預(yù)測(cè)計(jì)數(shù)積累到一定程度,標(biāo)志model_f lag將被重置為1,則對(duì)于新到達(dá)數(shù)據(jù)需重建垂直預(yù)測(cè)模型。
[0022](8)若水平預(yù)測(cè)模型已經(jīng)建立,即model_count=l,則轉(zhuǎn)步驟(10);否則,利用屬性值和事件類型均已知的d條歷史數(shù)據(jù),構(gòu)建水平預(yù)測(cè)模型的訓(xùn)練樣本空間,并將其按照LIBSVM的格式要求輸出至磁盤,形成水平預(yù)測(cè)模型的訓(xùn)練樣本文件sensor_trans_train ;
[0023]本發(fā)明中,針對(duì)事件類型建立的預(yù)測(cè)模型稱為水平預(yù)測(cè)模型,水平預(yù)測(cè)模型在多屬性事件預(yù)測(cè)中只需建立一次。
[0024](9)建立水平預(yù)測(cè)模型,并將水平預(yù)測(cè)模型已建立標(biāo)志model_count置為I ;
[0025]基于水平訓(xùn)練樣本文件和LIBSVM工具建立水平預(yù)測(cè)模型。首先進(jìn)行參數(shù)選擇,然后使用LIBSVM工具中的svmtrain命令建立水平預(yù)測(cè)模型。
[0026](10)基于步驟(7)所建立的各屬性所對(duì)應(yīng)的垂直預(yù)測(cè)模型,對(duì)各屬性下一個(gè)時(shí)間點(diǎn)的值進(jìn)行預(yù)測(cè);[0027]首先需建立符合LIBSVM格式要求的各垂直預(yù)測(cè)模型的測(cè)試數(shù)據(jù)文件輸出到磁盤上,然后基于建立好的各個(gè)垂直預(yù)測(cè)模型和各測(cè)試文件,分別使用LIBSVM的svmpredict命令對(duì)各屬性下一個(gè)時(shí)間點(diǎn)的值進(jìn)行預(yù)測(cè)。
[0028](11)首先以各屬性的預(yù)測(cè)值作為輸入形成水平預(yù)測(cè)模型的測(cè)試樣本,輸出到磁盤上,建立水平預(yù)測(cè)模型的測(cè)試數(shù)據(jù)文件;然后對(duì)事件類型進(jìn)行預(yù)測(cè);若事件類型為非數(shù)值型,需對(duì)照其編碼對(duì)其進(jìn)行轉(zhuǎn)換,并將轉(zhuǎn)換結(jié)果輸出到輸出設(shè)備上。
[0029]基于步驟(10)中預(yù)測(cè)的下一時(shí)間點(diǎn)的各屬性值,形成符合LIBSVM格式要求的水平預(yù)測(cè)模型的測(cè)試數(shù)據(jù)文件存儲(chǔ)于磁盤上,然后基于步驟(9)建立好的水平預(yù)測(cè)模型和測(cè)試文件對(duì)下一個(gè)時(shí)間點(diǎn)的事件類型進(jìn)行預(yù)測(cè)。若事件類型為非數(shù)值型,本發(fā)明在建立預(yù)測(cè)模型時(shí)已經(jīng)將其轉(zhuǎn)換為數(shù)值類型,預(yù)測(cè)結(jié)果也為數(shù)值類型,因此,要對(duì)照其編碼將其轉(zhuǎn)換為原來(lái)的非數(shù)值型進(jìn)行輸出。
[0030](12)進(jìn)行誤差統(tǒng)計(jì)以決定是否需重建垂直預(yù)測(cè)模型,以對(duì)預(yù)測(cè)模型進(jìn)行自適應(yīng)修改。
[0031 ] 每當(dāng)步驟(11)預(yù)測(cè)結(jié)束后,該步驟就對(duì)預(yù)測(cè)的準(zhǔn)確度進(jìn)行統(tǒng)計(jì),當(dāng)“不準(zhǔn)確預(yù)測(cè)”累積到一定程度時(shí),自適應(yīng)地對(duì)垂直預(yù)測(cè)模型進(jìn)行修改。本發(fā)明提出“ ε -寬度誤差”的概念,以定義什么是“不準(zhǔn)確預(yù)測(cè)”。
[0032]首先根據(jù)事件類型的真實(shí)值或其編碼(對(duì)于非數(shù)值型)、預(yù)測(cè)值以及用戶給定的最小誤差閾值ε計(jì)算ε-寬度誤差loss;然后,根據(jù)loss值以及不準(zhǔn)確預(yù)測(cè)計(jì)數(shù)inaccu_count決定是否需重新建立垂直預(yù)測(cè)模型。
[0033](13)檢查用戶是否終止預(yù)測(cè)過(guò)程,若是,則整個(gè)多屬性事件預(yù)測(cè)過(guò)程結(jié)束;否則,轉(zhuǎn)入步驟(3),讀取事件流的下一個(gè)事件。
[0034]本發(fā)明的創(chuàng)新之處體現(xiàn)在:(1)設(shè)計(jì)并提供了一種稱為多屬性事件場(chǎng)MAEF的多屬性事件存儲(chǔ)結(jié)構(gòu),用于在內(nèi)存中存儲(chǔ)最新的事件流數(shù)據(jù),并基于此提供了一種將來(lái)自傳感器的不等間隔事件流變換為等間隔事件數(shù)據(jù)存儲(chǔ)于多屬性事件場(chǎng)的方法,用于構(gòu)建預(yù)測(cè)模型的訓(xùn)練樣本文件;(2)提供了針對(duì)多屬性事件的雙向建模與預(yù)測(cè)方法,包括:針對(duì)事件各屬性的垂直建模與預(yù)測(cè)方法和針對(duì)事件類型的水平建模與預(yù)測(cè)方法;(3)針對(duì)不斷更新的事件流,提供了基于ε -寬度誤差的預(yù)測(cè)模型自適應(yīng)修改策略,使得預(yù)測(cè)模型始終能夠反映事件流數(shù)據(jù)的最新變化情況,提高預(yù)測(cè)準(zhǔn)確性。
【專利附圖】

【附圖說(shuō)明】
[0035]圖1是本發(fā)明無(wú)線傳感器環(huán)境下多屬性事件的預(yù)測(cè)方法的總流程圖;
[0036]圖2是本發(fā)明將當(dāng)前讀取事件e的各屬性值或其編碼(對(duì)于非數(shù)值型)填入MAEF的流程圖;
[0037]圖3是本發(fā)明將當(dāng)前讀取事件e的各屬性值或其編碼(對(duì)于非數(shù)值型)填入MAEF的行粒度row的流程圖;
[0038]圖4是本發(fā)明對(duì)空缺行粒度進(jìn)行填充的流程圖;
[0039]圖5是本發(fā)明為每個(gè)屬性所對(duì)應(yīng)的垂直預(yù)測(cè)模型選取參數(shù)的流程圖;
[0040]圖6是本發(fā)明為水平預(yù)測(cè)模型選取參數(shù)的流程圖;
[0041]圖7是本發(fā)明進(jìn)行誤差統(tǒng)計(jì)以決定是否需重新建立垂直預(yù)測(cè)模型的流程圖。【具體實(shí)施方式】
[0042]如附圖所示:
[0043](1)對(duì)傳感器采集的事件數(shù)據(jù)的所有非數(shù)值型屬性和事件類型進(jìn)行數(shù)值編碼,形成屬性值/事件類型與其編碼對(duì)應(yīng)的編碼文件輸出至磁盤上存儲(chǔ);同時(shí)對(duì)相關(guān)變量進(jìn)行初始化;
[0044]對(duì)每個(gè)非數(shù)值型屬性進(jìn)行數(shù)值編碼,形成各自的編碼文件存儲(chǔ)于磁盤上,每個(gè)文件存儲(chǔ)的是相應(yīng)屬性值與其編碼的對(duì)應(yīng)關(guān)系,每個(gè)非數(shù)值型屬性的編碼值為從I開(kāi)始的連續(xù)自然數(shù);如果事件類型也是非數(shù)值型,同樣對(duì)事件類型進(jìn)行編碼,建立存儲(chǔ)它們之間對(duì)應(yīng)關(guān)系的編碼文件存儲(chǔ)于磁盤上;同時(shí)對(duì)多屬性事件預(yù)測(cè)過(guò)程中的相關(guān)變量進(jìn)行初始化,包括:將建立垂直預(yù)測(cè)模型的標(biāo)志model_flag初始化為1,將水平預(yù)測(cè)模型已建立標(biāo)志model_count初始化為O,將不準(zhǔn)確預(yù)測(cè)計(jì)數(shù)inaccu_count初始化為O。
[0045]本發(fā)明針對(duì)多屬性事件預(yù)測(cè),提出雙向建立預(yù)測(cè)模型的方法。其中,用來(lái)預(yù)測(cè)各屬性值的預(yù)測(cè)模型稱為垂直預(yù)測(cè)模型,用來(lái)預(yù)測(cè)事件類型的預(yù)測(cè)模型稱為水平預(yù)測(cè)模型。
[0046]model_flag是判斷是否需要建立垂直預(yù)測(cè)模型的標(biāo)志變量。model_flag為I意味著需要執(zhí)行建立垂直預(yù)測(cè)模型的過(guò)程;其值為O意味著不需執(zhí)行建立垂直預(yù)測(cè)模型的過(guò)程,可利用已有的垂直預(yù)測(cè)模型直接進(jìn)行預(yù)測(cè)。系統(tǒng)將根據(jù)預(yù)測(cè)模型的預(yù)測(cè)結(jié)果是否準(zhǔn)確自適應(yīng)地對(duì)m0del_flag的值進(jìn)行重置,從而自適應(yīng)地進(jìn)行垂直預(yù)測(cè)模型重建。
[0047]由于水平預(yù)測(cè)模型不隨時(shí)間發(fā)生變化,因此水平預(yù)測(cè)模型在整個(gè)事件預(yù)測(cè)過(guò)程中只建立一次。水平預(yù)測(cè)模型已建立標(biāo)志modelcount為0,表示水平預(yù)測(cè)模型尚未建立;model_count為I,表示水平預(yù)測(cè)模型已經(jīng)建立。
[0048]不準(zhǔn)確預(yù)測(cè)計(jì)數(shù)inaccu_count是預(yù)測(cè)誤差超出用戶規(guī)定閾值的計(jì)數(shù)。
[0049](2)將所有的編碼文件從磁盤讀入內(nèi)存,以方便構(gòu)建MAEF時(shí)進(jìn)行編碼轉(zhuǎn)換;同時(shí)在內(nèi)存中建立多屬性事件場(chǎng)結(jié)構(gòu)MAEF,并將與MAEF相關(guān)的變量初始化,包括:刷新粒度總數(shù)]1_代;^6811初始化為O,MAEF中當(dāng)前最新的行粒度current初始化為O,有效行計(jì)數(shù)eff_row_count初始化為O。
[0050]本發(fā)明為了建立多屬性事件預(yù)測(cè)模型,設(shè)計(jì)了多屬性事件場(chǎng)結(jié)構(gòu)MAEF,并提供了基于MAEF將不等間隔事件轉(zhuǎn)換為等間隔的方法以及基于MAEF構(gòu)建預(yù)測(cè)模型訓(xùn)練樣本的方法。MAEF是一個(gè)d行和n列構(gòu)成的內(nèi)存結(jié)構(gòu)。每行對(duì)應(yīng)一個(gè)等間隔多屬性事件,事件場(chǎng)的長(zhǎng)度d與用戶建立預(yù)測(cè)模型需要的樣本數(shù)量有關(guān),可由用戶指定。每列分別為多屬性事件的n屬性。多屬性事件場(chǎng)結(jié)構(gòu)MAEF如下表所示。
[0051]
【權(quán)利要求】
1.一種無(wú)線傳感器環(huán)境下多屬性事件的預(yù)測(cè)方法,其特征在于:包括以下步驟: (1)對(duì)傳感器采集的事件數(shù)據(jù)的所有非數(shù)值型屬性和事件類型進(jìn)行數(shù)值編碼,形成屬性值/事件類型與其編碼對(duì)應(yīng)的編碼文件輸出至磁盤上存儲(chǔ);同時(shí)對(duì)相關(guān)變量進(jìn)行初始化; (2)將所有的編碼文件從磁盤讀入內(nèi)存,以方便構(gòu)建多屬性事件場(chǎng)MAEF時(shí)進(jìn)行編碼轉(zhuǎn)換;同時(shí)在內(nèi)存中建立多屬性事件場(chǎng)結(jié)構(gòu)MAEF,并將與MAEF相關(guān)的變量初始化; (3)從傳感器事件流讀取當(dāng)前事件,將當(dāng)前事件的各屬性值或非數(shù)值型屬性編碼填入MAEF適當(dāng)?shù)男辛6?并根據(jù)當(dāng)前事件在MAEF中的位置更新當(dāng)前最新行粒度current和有效行計(jì)數(shù) eff_row_count ; (4)判斷在MAEF中是否已生成d行有效數(shù)據(jù),即判斷有效行計(jì)數(shù)eff_row_count^ d是否成立,若成立,則轉(zhuǎn)入步驟(5);否則,轉(zhuǎn)入步驟(3); (5)在MAEF中確定構(gòu)建各預(yù)測(cè)模型訓(xùn)練樣本文件的起始行粒度start和終止行粒度end ; (6)若建立垂直預(yù)測(cè)模型的標(biāo)志model_flag=l,說(shuō)明需建立預(yù)測(cè)模型,則基于MAEF中存儲(chǔ)的各屬性值和步驟(5)確定的起始行粒度start、終止行粒度end,在內(nèi)存中構(gòu)建每個(gè)屬性所對(duì)應(yīng)的垂直預(yù)測(cè)模型的樣本空間,并按照LIBSVM的格式要求將其輸出到磁盤上,形成與各屬性對(duì)應(yīng)的訓(xùn)練樣本文件,轉(zhuǎn)入步驟(7);否則,若標(biāo)志model_flag Φ 1,則繞過(guò)建立預(yù)測(cè)模型的步驟,轉(zhuǎn)入步驟(10); (7)針對(duì)多屬性事件中的每個(gè)屬性,分別建立其垂直預(yù)測(cè)模型,并置建立垂直預(yù)測(cè)模型的標(biāo)志model_flag為O ; (8)若水平預(yù)測(cè)模型已經(jīng)建立,即m0del_C0Unt=l,則轉(zhuǎn)入步驟(10);否則,利用屬性值和事件類型均已知的d條歷史數(shù)據(jù),構(gòu)建水平預(yù)測(cè)模型的訓(xùn)練樣本空間,并將其按照LIBSVM的格式要求輸出至磁盤,形成水平預(yù)測(cè)模型的訓(xùn)練樣本文件sensor_trans_train ; (9)建立水平預(yù)測(cè)模型,并將水平預(yù)測(cè)模型已建立標(biāo)志置為I; (10)基于步驟(7)所建立的各屬性所對(duì)應(yīng)的垂直預(yù)測(cè)模型,對(duì)各屬性下一個(gè)時(shí)間點(diǎn)的值進(jìn)行預(yù)測(cè); (11)首先以各屬性的預(yù)測(cè)值作為輸入形成水平預(yù)測(cè)模型的測(cè)試樣本,輸出到磁盤上,建立水平預(yù)測(cè)模型的測(cè)試數(shù)據(jù)文件;然后對(duì)事件類型進(jìn)行預(yù)測(cè);若事件類型為非數(shù)值型,需對(duì)照其編碼對(duì)其進(jìn)行轉(zhuǎn)換,并將轉(zhuǎn)換結(jié)果輸出到輸出設(shè)備上; (12)進(jìn)行誤差統(tǒng)計(jì)以決定是否需重建垂直預(yù)測(cè)模型,以對(duì)預(yù)測(cè)模型進(jìn)行自適應(yīng)修改; (13)檢查用戶是否終止預(yù)測(cè)過(guò)程,若是,則整個(gè)多屬性事件預(yù)測(cè)過(guò)程結(jié)束;否則,轉(zhuǎn)入步驟(3),讀取事件流的下一個(gè)事件。
2.如權(quán)利要求1所述的無(wú)線傳感器環(huán)境下多屬性事件的預(yù)測(cè)方法,其特征在于步驟(I)所述對(duì)傳感器采集的事件數(shù)據(jù)的所有非數(shù)值型屬性和事件類型進(jìn)行數(shù)值編碼,形成屬性值/事件類型與其編碼對(duì)應(yīng)的編碼文件輸出至磁盤上存儲(chǔ),是對(duì)每個(gè)非數(shù)值型屬性進(jìn)行數(shù)值編碼,形成各自的編碼文件存儲(chǔ)于磁盤上,每個(gè)文件存儲(chǔ)的是相應(yīng)屬性值與其編碼的對(duì)應(yīng)關(guān)系,每個(gè)非數(shù)值型屬性的編碼值為從I開(kāi)始的連續(xù)自然數(shù);如果事件類型也是非數(shù)值類型,同樣對(duì)事件類型進(jìn)行編碼,建立存儲(chǔ)它們之間對(duì)應(yīng)關(guān)系的編碼文件存儲(chǔ)于磁盤上;同時(shí)對(duì)相關(guān)變量進(jìn)行初始化,是對(duì)多屬性事件預(yù)測(cè)過(guò)程中的相關(guān)變量進(jìn)行初始化,包括:將建立垂直預(yù)測(cè)模型的標(biāo)志model_flag初始化為I,將水平預(yù)測(cè)模型已建立標(biāo)志model_count初始化為O,將不準(zhǔn)確預(yù)測(cè)計(jì)數(shù)inaccu_count初始化為O,建立垂直預(yù)測(cè)模型的標(biāo)志model_flag為I意味著需要執(zhí)行建立垂直預(yù)測(cè)模型的過(guò)程,其值為O意味著不需執(zhí)行建立垂直預(yù)測(cè)模型的過(guò)程,可利用已有的垂直預(yù)測(cè)模型直接進(jìn)行預(yù)測(cè),水平預(yù)測(cè)模型已建立標(biāo)志model_count為O,表示水平預(yù)測(cè)模型尚未建立;model_count為I,表示水平預(yù)測(cè)模型已經(jīng)建立,不準(zhǔn)確預(yù)測(cè)計(jì)數(shù)inaCCu_Count是預(yù)測(cè)誤差超出用戶規(guī)定閾值的計(jì)數(shù)。
3.如權(quán)利要求1所述的無(wú)線傳感器環(huán)境下多屬性事件的預(yù)測(cè)方法,其特征在于步驟(2)所述在內(nèi)存中建立多屬性事件場(chǎng)結(jié)構(gòu)MAEF,并將與MAEF相關(guān)的變量初始化,包括:刷新粒度總數(shù)n_refresh初始化為O,MAEF中當(dāng)前最新的行粒度current初始化為O,有效行計(jì)數(shù)eff_row_count初始化為O ;所述MAEF是一個(gè)d行和η列構(gòu)成的內(nèi)存結(jié)構(gòu),每行對(duì)應(yīng)一個(gè)等間隔多屬性事件,事件場(chǎng)的長(zhǎng)度d與用戶建立預(yù)測(cè)模型需要的樣本數(shù)量有關(guān),可由用戶指定,每列分別為多屬性事件的η個(gè)屬性,多屬性事件場(chǎng)結(jié)構(gòu)MAEF如下表:
4.如權(quán)利要求1所述的無(wú)線傳感器環(huán)境下多屬性事件的預(yù)測(cè)方法,其特征在于步驟(3)從傳感器事件流讀取當(dāng)前事件,將當(dāng)前各屬性值或非數(shù)值型屬性編碼填入MAEF適當(dāng)?shù)男辛6?,并根?jù)當(dāng)前事件在MAEF中的位置更新當(dāng)前最新行粒度current和有效行計(jì)數(shù)eff_row—count ; 所述行粒度是用戶指定的相鄰兩個(gè)事件之間的時(shí)間間隔,傳感器實(shí)際采集的數(shù)據(jù)可能是非等間隔的,且可能在一個(gè)行粒度內(nèi)有多個(gè)采集值,規(guī)定MAEF的每行對(duì)應(yīng)一個(gè)行粒度,在一個(gè)行粒度內(nèi)只存儲(chǔ)一個(gè)事件,且只存儲(chǔ)該粒度內(nèi)最新到達(dá)的事件,這樣,MAEF中每個(gè)事件及其屬性的取值以行粒度為時(shí)間間隔,實(shí)現(xiàn)等間隔; 從傳感器事件流讀取最新到達(dá)的事件,將事件各屬性值或非數(shù)值型屬性編碼填入MAEF適當(dāng)?shù)奈恢?,以?gòu)建MAEF,對(duì)于在t時(shí)刻讀取的事件e (t, attr/,attr2’,...,attrn’),將其填入MAEF的適當(dāng)位置,構(gòu)建MAEF的具體步驟包括: (3.1)計(jì)算t時(shí)刻新讀取事件e在事件流中的行粒度e_g,公式如下:e_g=t/g+l,其中,g是用戶指定的行粒度大小; (3.2)若e_g>d+n_refresh,說(shuō)明又將有d個(gè)MAEF行粒度被“刷新”,則執(zhí)行n_refresh=n—refresh+d ; (3.3)計(jì)算新讀取事件e在MAEF中所在的行粒度row,公式如下:row=t/g+l_n_refresh ; (3.4)將事件e的各屬性值或其編碼填入MAEF的行粒度row ; 首先對(duì)照步驟(2)讀入內(nèi)存的各個(gè)編碼文件,將事件e的η個(gè)屬性中非數(shù)值型的轉(zhuǎn)換為數(shù)值型,在此將e的n個(gè)數(shù)值型屬性分別表示為attrp attr2,…,attrn ; 然后,針對(duì)行粒度row取值的三種情況,分別處理如下: ①若row=current,則說(shuō)明新讀入事件e所在的MAEF行粒度row與MAEF當(dāng)前的最新行粒度current相同,此時(shí),在該行粒度內(nèi)用Btti^attr2,…,attrn覆蓋原有值,即執(zhí)行MAEF [row] [ 1] =Bttr1, MAEF [row] [2] =attr2,…,MAEF[row] [n] =attrn, current 值保持不變,有效行計(jì)數(shù)efT_row_count保持不變; ②若row=current+l,貝U說(shuō)明新讀入事件e在MAEF當(dāng)前最新行粒度current的下一個(gè)粒度內(nèi),此時(shí),直接將attr1; attr2,…,attrn填入MAEF的行粒度row的第I~η列中,即執(zhí)行 MAEF [row] [1] =Bttr1, MAEF [row] [2] =attr2,…,MAEF [row] [n] =attrn,且將 current 變量更新,即執(zhí)行current=row ;若有效行計(jì)數(shù)eff_row_count〈d,則將eff_row_count增I ; ③若row>current+l,則首先將attr^attr2,…,attrn填入MAEF的行粒度row的第I~η 列中,即執(zhí)行 MAEF [row] [1] =Bttr1, MAEF [row] [2] =attr2,…,MAEF [row] [n] =attrn,且將current變量更新,即執(zhí)行current=row ;同時(shí)對(duì)空缺行粒度進(jìn)行填充, 若row>current+l,則說(shuō)明可能傳感器采集數(shù)據(jù)過(guò)于稀疏或者用戶指定的行粒度過(guò)小出現(xiàn)事件在某行粒度內(nèi)空缺的情況,這種情況下首先計(jì)算空缺行粒度的數(shù)量no_missing,公式為:no_missing=row-current-l,然后依次對(duì)每個(gè)空缺行粒度進(jìn)行填充,設(shè)這no_missing個(gè)空缺行粒度中,第一個(gè)空缺行粒度為first_missing,填充no_missing個(gè)空缺行粒度及增加有效行計(jì)數(shù)efT_row_count的過(guò)程如下: (3.4.1)置當(dāng)前的空缺行粒度row,=first_missing ; (3.4.2)若 row’ >first_missing+no_missing-l,說(shuō)明空缺的 no_missing 個(gè)行粒度全部填充完畢,則判斷有效行計(jì)數(shù)efT_row_count〈d是否成立,若成立,則將efT_row_count增加(no_missing+l),即執(zhí)行 eff_row_count=eff_row_count+no_missing+l ;結(jié)束該空缺行粒度填充過(guò)程;否則,若row’ < first_missing+no_missing-l,則轉(zhuǎn)入步驟(3.4.3);(3.4.3)設(shè)置 IOXn 的二維數(shù)組 att,并置:att[i] [j] =MAEF[row,_i][j],其中,10≥i≥1,n≥j≥1,按下邊公式對(duì)空缺行row’進(jìn)行填充:
5.如權(quán)利要求1所述的無(wú)線傳感器環(huán)境下多屬性事件的預(yù)測(cè)方法,其特征在于步驟(4)所述判斷在MAEF中是否已生成d行建立預(yù)測(cè)模型的有效數(shù)據(jù),即判斷有效行計(jì)數(shù)row_count≥d是否成立,若成立,則轉(zhuǎn)入步驟(5);否則,轉(zhuǎn)入步驟(3); d是MAEF的長(zhǎng)度,建立各預(yù)測(cè)模型將使用MAEF中最新的d行數(shù)據(jù),稱為有效數(shù)據(jù)或有效行。
6.如權(quán)利要求1所述的無(wú)線傳感器環(huán)境下多屬性事件的預(yù)測(cè)方法,其特征在于步驟(5)所述在MAEF中確定構(gòu)建各預(yù)測(cè)模型訓(xùn)練樣本文件的起始行粒度start和終止行粒度end,置 end=current,若 current=d,則置 Start=I ;否則,置 start=current+l ; 確定在構(gòu)建MAEF的過(guò)程中最早被填入事件的行粒度,作為構(gòu)建訓(xùn)練樣本文件的起始數(shù)據(jù)start,確定MAEF中最新填入事件的行粒度,作為構(gòu)建訓(xùn)練樣本文件的終止數(shù)據(jù)end,利用最近d個(gè)行粒度內(nèi)的事件數(shù)據(jù)按照它們發(fā)生的順序構(gòu)建預(yù)測(cè)模型的訓(xùn)練樣本文件;變量current總是記載MAEF中當(dāng)前最新的行粒度,因此,end=current, MAEF中的d個(gè)行粒度是循環(huán)使用的,當(dāng)Current=Cl時(shí),第I個(gè)行粒度中的事件是最早填入的,故置Start=I ;否則當(dāng)current d時(shí),第(current+1)個(gè)行粒度中的事件是最早填入的,故置start=current+l ; MAEF中從行粒度start開(kāi)始到行粒度end為止的數(shù)據(jù),將用來(lái)構(gòu)建各預(yù)測(cè)模型的訓(xùn)練樣本文件。
7.如權(quán)利要求1所述的無(wú)線傳感器環(huán)境下多屬性事件的預(yù)測(cè)方法,其特征在于步驟(6)若建立垂直預(yù)測(cè)模型的標(biāo)志model_flag=l,則說(shuō)明需建立垂直預(yù)測(cè)模型,則基于MAEF中存儲(chǔ)的各屬性值和步驟(5)確定的起始行粒度start、終止行粒度end,在內(nèi)存中構(gòu)建每個(gè)屬性所對(duì)應(yīng)的垂直預(yù)測(cè)模型的樣本空間,并按照LIBSVM的格式要求將其輸出到磁盤上,形成與各屬性對(duì)應(yīng)的訓(xùn)練樣本文件,轉(zhuǎn)入步驟(7);否則,若標(biāo)志model_flag Φ 1,則繞過(guò)建立預(yù)測(cè)模型的步驟,轉(zhuǎn)入步驟(10); 步驟(3)不斷地讀入事件流中新到達(dá)的事件,將事件各屬性值或其編碼填入MAEF中,當(dāng)步驟(4)中判斷MAEF中已生成d行建立預(yù)測(cè)模型的有效數(shù)據(jù)時(shí),MAEF已經(jīng)被最新d個(gè)行粒度內(nèi)的事件屬性或其編碼填滿,如果用attr/表示MAEF中第i個(gè)行粒度的第j個(gè)屬性值,其中,
8.如權(quán)利要求1所述的無(wú)線傳感器環(huán)境下多屬性事件的預(yù)測(cè)方法,其特征在于步驟(7)針對(duì)多屬性事件中的每個(gè)屬性j (n ^≥j≥1),分別建立相應(yīng)的垂直預(yù)測(cè)模型,并置建立垂直預(yù)測(cè)模型的標(biāo)志model_flag為O ; 該步驟包括以下具體步驟: (7.1)為建立每個(gè)屬性j對(duì)應(yīng)的垂直預(yù)測(cè)模型確定相關(guān)參數(shù); 建立預(yù)測(cè)模型時(shí)選擇的參數(shù)直接影響預(yù)測(cè)模型的準(zhǔn)確性,基于SVM的回歸功能建立預(yù)測(cè)模型需要確定三個(gè)參數(shù),即懲罰系數(shù)C、不敏感損失ε和核參數(shù)ga_a (這里采用徑向基核函數(shù)),這三個(gè)參數(shù)太大或太小都會(huì)影響預(yù)測(cè)性能,其取值應(yīng)在適當(dāng)?shù)姆秶鷥?nèi),這里,為3個(gè)參數(shù)確定較寬的取值范圍:21≥gamma≥2_8,212≥C≥2-1,2≥1≥ε≥2_12,使用SVM建立預(yù)測(cè)模型的參數(shù)一般不超過(guò)上述范圍, 該步驟用來(lái)為每個(gè)屬性j (n ^ j ^ I)所對(duì)應(yīng)的垂直預(yù)測(cè)模型選擇確定gamma、C、ε這3個(gè)參數(shù),具體步驟為: (7.1.1)在各自的取值范圍內(nèi),為3個(gè)參數(shù)指定一些特定值:gamma=2' 2_7, 2^, - ,20, 2^0=2-1, 2°, 21,-,211, 212,ε =2-12, 2-11, 2,,- ,2-2, 2'針對(duì)每個(gè)參數(shù)的取值,形成多個(gè)(ga_a, C, ε )組合; (7.1.2)將MAEF中的數(shù)據(jù)從行粒度start開(kāi)始至end結(jié)束的屬性值attrs;, attrsj?...? attrs;按順序分成 1、2、3、4、5 共 5 組,其中第 1、2、3、4 組長(zhǎng)度為 dl=|_d/5」,第5組長(zhǎng)度為d2=d-dlX4 ; (7.1.3)用1、2、3、4組作為訓(xùn)練數(shù)據(jù),第5組數(shù)據(jù)作為測(cè)試數(shù)據(jù),基于步驟(6)生成的樣本空間,按照下面的格式分別生成名為sensor_para_longi_train_l的訓(xùn)練樣本文件和名為sensor_para_longi_test_l的測(cè)試數(shù)據(jù)文件存儲(chǔ)至磁盤上; (7.1.4)用1、2、3組作為訓(xùn)練數(shù)據(jù),第4組數(shù)據(jù)作為測(cè)試數(shù)據(jù),基于步驟(6)生成的樣本空間,按照下面的格式分別生成名為sensor_para_longi_train_2的訓(xùn)練樣本文件和名為sensor_para_longi_test_2的測(cè)試數(shù)據(jù)文件存儲(chǔ)至磁盤上;(7.1.5)用1、2組作為訓(xùn)練數(shù)據(jù),第3組數(shù)據(jù)作為測(cè)試數(shù)據(jù),基于步驟(6)生成的樣本空間,按照下面的格式分別生成名為sensor_para_longi_train_3的訓(xùn)練樣本文件和名為sensor_para_longi_test_3的測(cè)試數(shù)據(jù)文件存儲(chǔ)至磁盤上; (7.1.6)用第I組作為訓(xùn)練數(shù)據(jù),第2組數(shù)據(jù)作為測(cè)試數(shù)據(jù),基于步驟(6)生成的樣本空間,按照下面的格式分別生成名為sensor_para_longi_train_4的訓(xùn)練樣本文件和名為sensor_para_longi_test_4的測(cè)試數(shù)據(jù)文件存儲(chǔ)至磁盤上; (7.1.7)針對(duì)每一組參數(shù)組合化&_&,(:,ε ),分別進(jìn)行以下4次測(cè)試,并計(jì)算每次測(cè)試的誤差及4次測(cè)試的平均誤差; (7.1.7.1)對(duì)第5組數(shù)據(jù)進(jìn)行測(cè)試,并計(jì)算測(cè)試誤差error_longi_l ; 首先,執(zhí)行以下命令建立針對(duì)第5組數(shù)據(jù)的測(cè)試模型:
svmtrain - s3 - t2 - g gamma - c C - p ε sensor—para—longi_train_lmodel_sensor_para—longi_l 其中,參數(shù)S設(shè)置為3,表明采用的是e-SVR;參數(shù)t設(shè)置為2,表明采用的是徑向基核函數(shù);參數(shù)g、C、P分別設(shè)置為gamma、C、ε ,對(duì)應(yīng)一組參數(shù)組合(gamma, C, ε ) ;sensor_para_longi_train_l是步驟(7.1.3)基于1、2、3、4組數(shù)據(jù)生成的訓(xùn)練樣本文件;model_sensor_para_longi_l是svmtrain命令生成的結(jié)果文件,是用來(lái)選擇參數(shù)的測(cè)試模型; 然后,執(zhí)行如下命令對(duì)第5組數(shù)據(jù)進(jìn)行測(cè)試:
svmpredict sensor_para_longi_test_lmodel_sensor_para_longi_lsensor_para_longi_output_l 其中,sensor_para_longi_test_l是步驟(7.1.3)基于第5組數(shù)據(jù)生成的測(cè)試數(shù)據(jù)文件,model_sensor_para_longi_l是svmtrain命令生成的測(cè)試模型,sensor_para_longi_output_l是svmpredict命令生成的結(jié)果文件,存儲(chǔ)的是對(duì)第5組數(shù)據(jù)Ittrsfltl、 attrsfM、attrsf1*3、…、altrsf1、altrs丨進(jìn)行測(cè)試的結(jié)果,其文件長(zhǎng)度為d2=d_4dl ; 最后,根據(jù)第5組的真實(shí)數(shù)據(jù)與文件sensor_para_longi_output_l中的測(cè)試結(jié)果數(shù)據(jù)計(jì)算測(cè)試誤差,設(shè)sensor_para_longi_output_l中的數(shù)據(jù)依次為:test] ^ Iestj2、…、》則測(cè)試誤差計(jì)算如下:
9.如權(quán)利要求1所述的無(wú)線傳感器環(huán)境下多屬性事件的預(yù)測(cè)方法,其特征在于步驟(8)若水平預(yù)測(cè)模型已經(jīng)建立,即m0del_C0Unt=l,則轉(zhuǎn)步驟(10);否則,利用屬性值和事件類型均已知的d條歷史數(shù)據(jù),構(gòu)建水平預(yù)測(cè)模型的訓(xùn)練樣本空間,并將其按照LIBSVM的格式要求輸出至磁盤,形成水平預(yù)測(cè)模型的訓(xùn)練樣本文件sensor_trans_train ; 這里,用attrr/表示第i條歷史數(shù)據(jù)的第j個(gè)屬性值或非數(shù)值型屬性編碼,用Obji表示第i條歷史數(shù)據(jù)的事件類型或其編碼,對(duì)于非數(shù)值型事件類型,要對(duì)照步驟(2)讀入內(nèi)存的編碼文件將其轉(zhuǎn)換為數(shù)值編碼,則可為水平預(yù)測(cè)模型構(gòu)建如下由d個(gè)訓(xùn)練樣本對(duì)(Xi,yi)構(gòu)成的訓(xùn)練樣本空間,其中,d ^ i ^ I,
10.如權(quán)利要求1所述的無(wú)線傳感器環(huán)境下多屬性事件的預(yù)測(cè)方法,其特征在于步驟(9)建立水平預(yù)測(cè)模型,并將水平預(yù)測(cè)模型已建立標(biāo)志modelcount置為I ; 其中,建立水平預(yù)測(cè)模型的子步驟包括: (9.1)確定建立水平預(yù)測(cè)模型的參數(shù); 選擇水平預(yù)測(cè)模型的參數(shù)與選擇垂直預(yù)測(cè)模型參數(shù)的思路相似,都是將訓(xùn)練數(shù)據(jù)分成.1、2、3、4、5共5組,然后針對(duì)每一參數(shù)組合,對(duì)某些組中的數(shù)據(jù)分別進(jìn)行測(cè)試,計(jì)算幾次測(cè)試的平均誤差,選擇平均誤差最小的參數(shù)組合作為建立預(yù)測(cè)模型的參數(shù),不同的是,水平預(yù)測(cè)模型的訓(xùn)練樣本之間無(wú)時(shí)序依賴關(guān)系,因此,采取與垂直預(yù)測(cè)模型參數(shù)選擇不同的測(cè)試方式,即分別用1、2、3、4組數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),測(cè)試第5組數(shù)據(jù);用2、3、4、5組數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),測(cè)試第I組數(shù)據(jù);用3、4、5、1組數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),測(cè)試第2組數(shù)據(jù);用4、5、1、2組數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),測(cè)試第3組數(shù)據(jù);用5、1、2、3組數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),測(cè)試第4組數(shù)據(jù),具體步驟包括: (9.1.1)在各自的取值范圍內(nèi),為3個(gè)參數(shù)指定一些特定值:gamma=2' 2_7, 2^, - ,20, 2^0=2-1, 2°, 21,-,211, 212,ε =2-12, 2-11, 2,,- ,2-2, 2'針對(duì)每個(gè)參數(shù)的取值,形成各種組合(ga_a, C, ε ); (9.1.2)將步驟(8)構(gòu)建的水平預(yù)測(cè)模型的訓(xùn)練樣本空間中的數(shù)據(jù)按順序分成1、2、3、.4、5共5組,其中第1、2、3、4組長(zhǎng)度為dl=[d/5」》第5組長(zhǎng)度為d2=d_4dl,其中d為MAEF長(zhǎng)度; (9.1.3)用1、2、3、4組作為訓(xùn)練數(shù)據(jù),第5組作為測(cè)試數(shù)據(jù),基于步驟(8)生成的訓(xùn)練樣本空間,分別生成名為sensor_para_trans_train_l的訓(xùn)練樣本文件和名為sensor_para_trans_test_l的測(cè)試數(shù)據(jù)文件輸出至磁盤存儲(chǔ); (9.1.4)用2、3、4、5組作為訓(xùn)練數(shù)據(jù),第I組作為測(cè)試數(shù)據(jù),基于步驟(8)生成的訓(xùn)練樣本空間,分別生成名為sensor_para_trans_train_2的訓(xùn)練樣本文件和名為sensor_para_trans_test_2的測(cè)試數(shù)據(jù)文件輸出至磁盤存儲(chǔ);(9.1.5)用3、4、5、1組作為訓(xùn)練數(shù)據(jù),第2組作為測(cè)試數(shù)據(jù),基于步驟(8)生成的訓(xùn)練樣本空間,分別生成名為sensor_para_trans_train_3的訓(xùn)練樣本文件和名為sensor_para_trans_test_3的測(cè)試數(shù)據(jù)文件輸出至磁盤存儲(chǔ); (9.1.6)用4、5、1、2組作為訓(xùn)練數(shù)據(jù),第3組作為測(cè)試數(shù)據(jù),基于步驟(8)生成的訓(xùn)練樣本空間,分別生成名為sensor_para_trans_train_4的訓(xùn)練樣本文件和名為sensor_para_trans_test_4的測(cè)試數(shù)據(jù)文件輸出至磁盤存儲(chǔ); (9.1.7)用5、1、2、3組作為訓(xùn)練數(shù)據(jù),第4組作為測(cè)試數(shù)據(jù),基于步驟(8)生成的訓(xùn)練樣本空間,分別生成名為sensor_para_trans_train_5的訓(xùn)練樣本文件和名為sensor_para_trans_test_5的測(cè)試數(shù)據(jù)文件輸出至磁盤存儲(chǔ); (9.1.8)針對(duì)每一組參數(shù)組合化&1111^,(:,ε ),分別進(jìn)行以下5次測(cè)試,并計(jì)算每次測(cè)試的誤差及5次測(cè)試的平均誤差; (9.1.8.1)對(duì)第 5組數(shù)據(jù)進(jìn)行測(cè)試,并計(jì)算測(cè)試誤差error_trans_l ; 首先,執(zhí)行以下命令建立針對(duì)第5組數(shù)據(jù)的測(cè)試模型:
svmtrain - s3 - t2 - g gamma - c C - ρ ε sensor_para_trans_train_lmodel_sensor_para_trans_l 其中,參數(shù)s設(shè)置為3,表明采用的是e-SVR;參數(shù)t設(shè)置為2,表明采用的是徑向基核函數(shù);參數(shù)g、C、ρ分別設(shè)置為gamma、C、ε ,對(duì)應(yīng)一組參數(shù)組合(gamma, C, ε ) ;sensor_para_trans_train_l是步驟(9.1.3)基于1、2、3、4組數(shù)據(jù)生成的訓(xùn)練樣本文件;model_sensor_para_trans_l是svmtrain命令生成的結(jié)果文件,是用來(lái)選擇參數(shù)的測(cè)試模型。 然后,執(zhí)行如下命令對(duì)第5組數(shù)據(jù)進(jìn)行測(cè)試:
svmpredict sensor_para_trans_test_lmodel_sensor_para_trans_lsensor_para_trans_output_l 其中,sensor_para_trans_test_l是步驟(9.1.3)基于第5組數(shù)據(jù)生成的測(cè)試數(shù)據(jù)文件,model_sensor_para_trans_l 是 svmtrain 命令生成的測(cè)試模型,sensor_para_trans_output_l是svmpredict命令生成的結(jié)果文件,存儲(chǔ)的是對(duì)第5組數(shù)據(jù)obj4dl+1、obj4dl+2、…、Objd進(jìn)行測(cè)試的結(jié)果,其文件長(zhǎng)度為d2=d-4dl ; 最后,根據(jù)第5組的真實(shí)數(shù)據(jù)與文件sensor_para_trans_output_l中的測(cè)試結(jié)果數(shù)據(jù)計(jì)算測(cè)試誤差,設(shè) sensor_para_trans_output_l 中的數(shù)據(jù)依次為!testptestj^'test^,則測(cè)試誤差計(jì)算如下:
11.如權(quán)利要求1所述的無(wú)線傳感器環(huán)境下多屬性事件的預(yù)測(cè)方法,其特征在于步驟(10)基于步驟(7)所建立的各屬性所對(duì)應(yīng)的垂直預(yù)測(cè)模型,對(duì)各屬性下一個(gè)時(shí)間點(diǎn)的值進(jìn)行預(yù)測(cè); (10.1)針對(duì)每個(gè)屬性j (η≥j≥1),基于當(dāng)前MAEF中的數(shù)據(jù)和當(dāng)前的起始行粒度start、終止行粒度end,生成測(cè)試樣本文件sensor_longi_predict_j,內(nèi)容和格式如下:


12.如權(quán)利要求1所述的無(wú)線傳感器環(huán)境下多屬性事件的預(yù)測(cè)方法,其特征在于步驟(11)首先以各屬性的預(yù)測(cè)值作為輸入形成水平預(yù)測(cè)模型的測(cè)試樣本,輸出到磁盤上,生成水平預(yù)測(cè)模型的測(cè)試數(shù)據(jù)文件;然后對(duì)事件類型進(jìn)行預(yù)測(cè);若事件類型為非數(shù)值型,需對(duì)照其編碼對(duì)其進(jìn)行轉(zhuǎn)換,并將轉(zhuǎn)換結(jié)果輸出到輸出設(shè)備上; (11.1)生成水平預(yù)測(cè)模型的測(cè)試數(shù)據(jù)文件sensor_trans_predict,格式如下:

13.如權(quán)利要求1所述的無(wú)線傳感器環(huán)境下多屬性事件的預(yù)測(cè)方法,其特征在于步驟(12)進(jìn)行誤差統(tǒng)計(jì)以決定是否需重新建立垂直預(yù)測(cè)模型,以根據(jù)預(yù)測(cè)的準(zhǔn)確性及時(shí)對(duì)預(yù)測(cè)模型進(jìn)行自適應(yīng)的修改,其具體步驟包括: (12.1)計(jì)算ε -寬度誤差loss ; 設(shè)事件類型或非數(shù)值型事件類型編碼的真實(shí)值為y,預(yù)測(cè)值為夕,則ε -寬度誤差loss可計(jì)算如下:
【文檔編號(hào)】G06F19/00GK103745130SQ201410040442
【公開(kāi)日】2014年4月23日 申請(qǐng)日期:2014年1月27日 優(yōu)先權(quán)日:2014年1月27日
【發(fā)明者】林樹(shù)寬, 楊禮國(guó), 喬建忠 申請(qǐng)人:東北大學(xué)
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1