湯程皓,梅 穎,盧誠波
(1.浙江理工大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,浙江 杭州 310018;2.麗水學(xué)院 數(shù)學(xué)與計(jì)算機(jī)學(xué)院,浙江 麗水 323000)
在生產(chǎn)生活的許多領(lǐng)域,無時無刻都在產(chǎn)生具有實(shí)時、高速、海量等特點(diǎn)的數(shù)據(jù)流[1],例如傳感器實(shí)時監(jiān)測數(shù)據(jù)、網(wǎng)絡(luò)流量監(jiān)測、交通監(jiān)控等。其中,類分布不平衡的情況經(jīng)常出現(xiàn),例如網(wǎng)絡(luò)入侵檢測、垃圾郵件檢測。在網(wǎng)絡(luò)空間中,少數(shù)入侵事件隱藏在正常訪問請求中,具有高度隱蔽性[2],在大量正常郵件中也混雜著少量垃圾郵件。
數(shù)據(jù)流類分布不均衡通常是指在數(shù)據(jù)流中,少數(shù)類樣本數(shù)量遠(yuǎn)小于多數(shù)類樣本數(shù)量,多數(shù)類樣本的分布在數(shù)據(jù)流中占有絕對的統(tǒng)治地位。目前,數(shù)據(jù)流分類算法一般針對類分布基本均衡的數(shù)據(jù)流所設(shè)計(jì),如果在類不平衡數(shù)據(jù)流上使用,得到的決策邊界會偏向于多數(shù)類,因此對少數(shù)類的分類準(zhǔn)確率往往較差,存在非常嚴(yán)重的分類損失。在醫(yī)療診斷、信用卡欺詐交易監(jiān)測等應(yīng)用領(lǐng)域,正確識別少數(shù)類具有重要的現(xiàn)實(shí)意義。
然而,目前大多數(shù)針對不平衡數(shù)據(jù)流分類算法的研究都聚焦在提升分類性能[3-4],較少關(guān)注數(shù)據(jù)流中歷史數(shù)據(jù)的存儲及查詢方法。為了更有效地利用有限的計(jì)算機(jī)性能資源,本文設(shè)計(jì)了一種基于集成欠采樣與在線序列超限學(xué)習(xí)機(jī)(Ensemble Undersampling and OS-ELM,EU-OSELM)方法,在提升分類性能的同時,可減少對計(jì)算機(jī)內(nèi)存的占用。
目前,在提升不平衡數(shù)據(jù)流分類性能方面,在數(shù)據(jù)層面可使用預(yù)處理技術(shù)處理原始數(shù)據(jù),利用重采樣方法優(yōu)化樣本空間,降低數(shù)據(jù)分布的不平衡程度,減輕模型在訓(xùn)練中因偏態(tài)類分布對結(jié)果的干擾。重采樣方法可分為過采樣和欠采樣[5-6]。Chawla 等[7]提出的SMOTE 方法是其中最具有代表性的一種方法,使用線性插值在兩個少數(shù)類樣本間添加人工合成的樣本使類分布平衡,方法簡單且魯棒性強(qiáng)。在SMOTE 方法基礎(chǔ)上,Han 等[8]提出Borderline-SMOTE 方法,僅對分布在分類邊界的少數(shù)類樣本進(jìn)行過采樣。樊東醒等[9]提出一種改進(jìn)K 中心點(diǎn)算法的過采樣方法,首先選擇合適進(jìn)行聚類采樣的區(qū)域,然后在聚類基礎(chǔ)上進(jìn)行加權(quán)過采樣。He 等[10]提出ADASYN 算法可自適應(yīng)地確定過采樣少數(shù)類時需要生成的樣本數(shù)量,多數(shù)類在進(jìn)行簡單的欠采樣時也可降低數(shù)據(jù)分布的不平衡程度,但由于潛在特征損失,無法充分利用多數(shù)類特征,可能會導(dǎo)致模型學(xué)習(xí)不充分,影響預(yù)測準(zhǔn)確率。Hou 等[11]提出一種欠采樣方法,在保留有效樣本信息的同時刪除噪聲。Ng等[12]先對多數(shù)類樣本進(jìn)行聚類,然后選擇最具標(biāo)識性的樣本計(jì)算敏感度,接下來選擇所需樣本。文獻(xiàn)[11、12]的算法均針對性地進(jìn)行欠采樣,可使采樣結(jié)果盡量保留樣本的關(guān)鍵特征信息。于艷麗等[13]提出一種基于K-means 聚類的欠采樣方法,根據(jù)多數(shù)類樣本和簇心距離選擇所需樣本。
在算法層面,可改進(jìn)、集成分類算法,使算法更符合在不平衡數(shù)據(jù)流上分類的要求,以提升分類精度。一般通過集成學(xué)習(xí)提升算法分類性能。Wang 等[14]結(jié)合過采樣、欠采樣和SMOTE 的重采樣方法,提出適用于多分類情況下的SMOTEBagging 集成學(xué)習(xí)方法。TAO 等[15]提出一種基于自適應(yīng)代價權(quán)重的支持向量機(jī)代價敏感集成算法。Chen等[16-18]提出REA、SERA 和MuSeRA 一系列針對不平衡數(shù)據(jù)流的學(xué)習(xí)算法。REA 利用KNN 算法從保存的少數(shù)類樣本中選擇一部分樣本與當(dāng)前數(shù)據(jù)塊合并訓(xùn)練基分類器;SERA 利用少數(shù)類樣本間的相似程度選擇樣本,以平衡訓(xùn)練數(shù)據(jù)集;MuSeRA 在SERA 基礎(chǔ)上引入權(quán)重機(jī)制訓(xùn)練集成分類器。以上算法的共同特點(diǎn)均需保存全部歷史數(shù)據(jù)中的少數(shù)類樣本。
然而,以上類處理方法均存在共同缺陷,即不符合數(shù)據(jù)流單通道特征,正常情況下只有當(dāng)數(shù)據(jù)第一次到達(dá)時才能對其進(jìn)行處理。同時,REA、SERA 和MuSeRA 算法在訓(xùn)練過程中需不斷保存歷史少數(shù)類樣本,隨著數(shù)據(jù)不斷到達(dá),將耗盡內(nèi)存空間[19],在某些需要低成本部署的應(yīng)用場景下,該問題將尤為嚴(yán)重。
算法由采樣和集成(Sampling and Ensemble,SE)兩部分組成[20]。數(shù)據(jù)以塊形式到達(dá),每接收到一個數(shù)據(jù)塊S,將數(shù)據(jù)分成少數(shù)類集合P和多數(shù)類集合Q。然后,將少數(shù)類樣本全部保存為一個數(shù)據(jù)集,隨著數(shù)據(jù)塊不斷到達(dá),可將少數(shù)類的集合表示成AP={P1,P2,...,Pm-1}。接下來,將最新到達(dá)的數(shù)據(jù)塊Sm分成Pm、Qm,Pm加入到少數(shù)類集合中,集合更新為{P1,P2,...,Pm},集合中樣本數(shù)為np,在多數(shù)類上進(jìn)行隨機(jī)欠采樣得到Qm的一個子集O,使用分布率r、np控制采樣,得到的多數(shù)類樣本數(shù)量為nq=np/r。最后,獲得用于訓(xùn)練基分類器的數(shù)據(jù)集{O,AP}。
根據(jù)設(shè)定基分類器的數(shù)量k、nq,在多數(shù)類Qm上進(jìn)行k次隨機(jī)不放回欠采樣。因此,每個基分類器所用數(shù)據(jù)集中的多數(shù)類樣本完全不相交。根據(jù)所生成的k個數(shù)據(jù)集,訓(xùn)練k個基分類器C1,C2,...,Ck,得到一個集成分類器。
超限學(xué)習(xí)機(jī)(Extreme Learning Machine,ELM)[21]是一種基于單隱層前饋神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)算法,結(jié)合最小二乘法計(jì)算輸出權(quán)重,隨機(jī)設(shè)置輸入權(quán)重和偏置,且后續(xù)無需迭代調(diào)整。ELM 能進(jìn)一步被描述為一個線性參數(shù)模型,輸出權(quán)重具有最小訓(xùn)練誤差,相較于傳統(tǒng)神經(jīng)網(wǎng)絡(luò)算法無需使用梯度下降法更新輸入權(quán)重也能取得全局最優(yōu)解,因此具備更高的訓(xùn)練效率與較好的泛化性能。
為解決ELM 無法適用于數(shù)據(jù)流分類的問題,Liang等[22]基于ELM 的在線學(xué)習(xí)算法提出在線序列超限學(xué)習(xí)機(jī)(Online Sequential Extreme Learning Machine,OS-ELM),無需保存歷史數(shù)據(jù),由初始化階段和序列學(xué)習(xí)階段組成。
2.2.1 初始化階段
從到達(dá)的第k個數(shù)據(jù)塊中選擇樣本x,設(shè)k=0,即最先到達(dá)的數(shù)據(jù)塊。隨機(jī)分配輸入權(quán)重ai、偏置bi,給定激活函數(shù)G(x),計(jì)算初始輸出權(quán)重β(0)。
式中:T0為初始階段所選擇樣本對應(yīng)的目標(biāo)矩陣;H0為初始階段隱層輸出矩陣。
式中:n為樣本數(shù)量;N為隱藏層節(jié)點(diǎn);P0為:
2.2.2 序列學(xué)習(xí)階段
在序列學(xué)習(xí)階段,接收到第k+1 塊數(shù)據(jù),計(jì)算隱層輸出矩陣Hk+1。然后在線更新輸出權(quán)重β(k+1)、Pk+1。
式中:Tk+1為新到達(dá)樣本的標(biāo)簽;Pk+1為:
式中:I為單位陣。
利用β可得預(yù)測的標(biāo)簽T。
由于Chen 等[16-20]的集成算法需全部保存處理數(shù)據(jù)流中少數(shù)類樣本,隨著數(shù)據(jù)不斷到達(dá),要為歷史少數(shù)類樣本數(shù)據(jù)開辟額外的內(nèi)存空間,內(nèi)存空間大小由數(shù)據(jù)量和數(shù)據(jù)維度兩方面決定。因此,在實(shí)際訓(xùn)練過程中存在以下問題:①由于數(shù)據(jù)流具有高速、海量等特點(diǎn),隨著時間推移,所需空間大小可能很快就會抵達(dá)計(jì)算機(jī)內(nèi)存上限;②在到達(dá)上限后是否丟棄歷史數(shù)據(jù)或進(jìn)行欠采樣,之后如何彌補(bǔ)潛在的少數(shù)類特征的損失也是需要考慮的問題;③由于數(shù)據(jù)流具有實(shí)時性特點(diǎn),對算法的實(shí)時處理和分析能力提出了一定要求,如果將歷史數(shù)據(jù)存放在外部存儲介質(zhì)中,將增加額外的I/O 操作,因此也不適合使用數(shù)據(jù)庫管理系統(tǒng)保存數(shù)據(jù);④龐大的數(shù)據(jù)量也會增加模型訓(xùn)練時間,導(dǎo)致模型在新到達(dá)的數(shù)據(jù)上變得過時的問題。
本文集成欠采樣和OS-ELM 算法,提出一種面向不平衡數(shù)據(jù)流的分類、存儲與查詢歷史數(shù)據(jù)方法。EU-OSELM 算法利用ELM 網(wǎng)絡(luò)中固定大小的外權(quán)矩陣來存儲歷史數(shù)據(jù)的特征信息。必要時,通過查詢歷史數(shù)據(jù)的特征信息代替對歷史數(shù)據(jù)的查詢。由于EU-OS-ELM 算法僅保存歷史數(shù)據(jù)在特征空間的信息,因此可解決因不斷保存歷史數(shù)據(jù)而導(dǎo)致耗盡內(nèi)存空間的問題。該算法使用集成方法來提升分類性能,在構(gòu)建基分類器的訓(xùn)練樣本時,使用不放回隨機(jī)欠采樣來進(jìn)一步提升算法的魯棒性,降低因特征損失導(dǎo)致欠擬合對模型的影響。
EU-OS-ELM 算法的目的是在提升不平衡數(shù)據(jù)流的分類準(zhǔn)確率基礎(chǔ)上,解決傳統(tǒng)方法因保存歷史數(shù)據(jù)而導(dǎo)致內(nèi)存空間無限增長,占據(jù)大量存儲空間的問題。算法流程如圖1所示,歷史少數(shù)類特征信息的存儲方式如圖2所示。
Fig.1 Algorithm flow圖1 算法流程
Fig.2 Storage of historical sample feature information圖2 歷史樣本特征信息存儲
在初始化階段,設(shè)隱藏層節(jié)點(diǎn)數(shù)為N,為每一個隱藏層節(jié)點(diǎn)隨機(jī)分配輸入權(quán)重ai、偏置bi,i=1,2,3,…,N。首先選取n0個少數(shù)類樣本進(jìn)行初始化,在第k個數(shù)據(jù)塊上確定所需樣本后,使用激活函數(shù)計(jì)算隱藏層輸出矩陣,接下來根據(jù)式(1)、式(2)計(jì)算輸出權(quán)重,此處中保存的信息為少數(shù)類樣本的特征信息。
在集成在線學(xué)習(xí)階段,使用后續(xù)到達(dá)的數(shù)據(jù)塊中的少數(shù)類來更新輸出權(quán)重矩陣及訓(xùn)練集成分類器。由于存在概念漂移現(xiàn)象,最近到達(dá)的數(shù)據(jù)塊Sm一般代表數(shù)據(jù)流中數(shù)據(jù)的最新分布情況,在最近到達(dá)的數(shù)據(jù)塊上訓(xùn)練分類器有利于減少期望誤差。無論數(shù)據(jù)流發(fā)生何種形式概念漂移,在最近數(shù)據(jù)上更新模型總有利于后續(xù)預(yù)測結(jié)果[20]。在數(shù)據(jù)塊Sk+1,Sk+2,…,Sm-1中,Sk+i為初始化完成之后到達(dá)的數(shù)據(jù)塊,根據(jù)式(3)、式(4)保存并更新少數(shù)類F的特征信息,同時記錄已經(jīng)到達(dá)的少數(shù)類的總數(shù)nA。
在特征空間中,通過組合低層特征可形成更抽象的高層特征,本文通過固定大小的矩陣存儲歷史數(shù)據(jù)的特征信息,在接收到新的樣本時通過式(3)、式(4)將當(dāng)前少數(shù)類樣本的特征信息補(bǔ)充到中,實(shí)現(xiàn)對少數(shù)類樣本特征信息的存儲。特征信息矩陣更新方式如下:
當(dāng)需要?dú)v史數(shù)據(jù)時,查詢該數(shù)據(jù)在特征空間中的信息以代替原始數(shù)據(jù)完成任務(wù),即使用保存的輸出權(quán)重矩陣,結(jié)合當(dāng)前數(shù)據(jù)塊來訓(xùn)練分類器。在最新數(shù)據(jù)塊Sm上,將數(shù)據(jù)分為多數(shù)類Q、少數(shù)類F,引入不平衡率r=|F|/|Q|為數(shù)據(jù)塊少數(shù)類樣本數(shù)量與多數(shù)類樣本數(shù)量的比率。
在多數(shù)類上進(jìn)行不放回隨機(jī)欠采樣,得到多數(shù)類樣本集合Oi,Oi集合樣本數(shù)為nq=nA/r,可根據(jù)需要進(jìn)行多次采樣,將每次采樣的結(jié)果和少數(shù)類F合并,得到一系列訓(xùn)練樣本集合Train={{O0,F(xiàn)},{O1,F(xiàn)},…,{Od,F(xiàn)}}。將式(3)、式(4)改寫為式(8)、式(9),查詢并利用保存的歷史少數(shù)類樣本的特征信息訓(xùn)練基分類器。
式中:Hi為Traini的隱藏層輸出矩陣;Ti為Traini的標(biāo)簽矩陣。
本文根據(jù)式(8)、式(9)結(jié)合歷史數(shù)據(jù)特征信息訓(xùn)練得到一個基分類器βi,由此得到一個集成分類器E={β0,β1,…,βd}。首先在測試數(shù)據(jù)塊Spre上根據(jù)激活函數(shù)得到Hpre,然后根據(jù)式(5)得到每一個基分類器的預(yù)測標(biāo)簽,最后根據(jù)各基分類的分類結(jié)果進(jìn)行投票得到最終預(yù)測結(jié)果。
算法1:EU-OS-ELM 算法
EU-OS-ELM 算法在集成在線學(xué)習(xí)階段需占用額外內(nèi)存空間,具體指為了保存歷史少數(shù)類的特征信息所需空間。在數(shù)據(jù)塊Si上,少數(shù)類樣本的隱藏層輸出矩陣H+i的維度為(n×N),n、N分別為樣本數(shù)和隱藏層節(jié)點(diǎn)個數(shù),Pi為一個維度為(N×N)的矩陣,Ti為樣本的標(biāo)簽,維度為(n×t),t為樣本長度。由此可知,保存少數(shù)類樣本特征信息的β+為固定大小的N×t矩陣,一旦算法初始化后,β+所需要的內(nèi)存空間就不會再發(fā)生任何改變。
EU-OS-ELM 算法在訓(xùn)練每個基分類器時,除了需要少數(shù)類樣本外,還需當(dāng)前數(shù)據(jù)塊中的部分多數(shù)類樣本。如果簡單地對多數(shù)類樣本進(jìn)行欠采樣會重復(fù)使用某一些樣本,導(dǎo)致基分類器間相似度過高,從而降低集成分類器的泛化性能。因此,算法1 中的步驟7 對當(dāng)前數(shù)據(jù)塊中的多數(shù)類樣本,使用了不放回隨機(jī)欠采樣方法,每一次采樣得到的多數(shù)類樣本沒有重復(fù)項(xiàng),能讓大量不同的多數(shù)類樣本參與學(xué)習(xí),確保各基分類器訓(xùn)練樣本的多樣性,降低因欠采樣導(dǎo)致特征損失對分類性能產(chǎn)生影響。此外,不放回隨機(jī)欠采樣使各基分類器間保持一定的差異性,既降低了算法方差,又提升了分類和泛化性能。
本文實(shí)驗(yàn)在macOS 12.2 系統(tǒng)、Core i5 處理器、16 GB 內(nèi)存的機(jī)器上運(yùn)行,算法實(shí)現(xiàn)編程語言為Python 3.7.7。在不平衡數(shù)據(jù)流問題中,使用總體正確率無法準(zhǔn)確反映模型對少數(shù)類樣本的分類性能,因此實(shí)驗(yàn)使用ROC 曲線、P-R 曲線、AUC 及G-mean 評價算法的性能。其中,ROC 為一個橫軸為假正率(FPR),縱軸為真正率(TPR)的二維曲線圖;AUC 為ROC 曲線下面積,是評價分類算法處理不平衡數(shù)據(jù)流問題的常用指標(biāo);P-R 曲線橫軸為查全率(Recall),縱軸為查準(zhǔn)率(Precision);G-mean 為多數(shù)類準(zhǔn)確率與少數(shù)類準(zhǔn)確率的綜合指標(biāo)。
不平衡率r的取值范圍為[0.3,0.6],集成中基分類器個數(shù)設(shè)置為6,激活函數(shù)G(x)選擇Sigmoid 函數(shù)。
本文選擇8 個人工數(shù)據(jù)集和1 個真實(shí)數(shù)據(jù)集。其中,SEA、SIN 和STAGG 數(shù)據(jù)集考慮了帶有不同類型概念漂移的情況;Spiral為一個螺旋數(shù)據(jù)集,包含4條螺旋臂,將其中一條螺旋臂的數(shù)據(jù)視為少數(shù)類,剩余數(shù)據(jù)為多數(shù)類;Covtype 來自UCI 的真實(shí)世界數(shù)據(jù)集,將其中數(shù)量最少的一個類視為少數(shù)類。具體數(shù)據(jù)如表1所示。
Table 1 Details of datasets表1 數(shù)據(jù)集細(xì)節(jié)
將REA[16]、SERA[17]、MuSeRA[18]、SE[20]算法作為對照算法與EU-OS-ELM 算法從分類性能和歷史少數(shù)類內(nèi)存使用方面進(jìn)行比較。集成算法SE 分別選擇Decision Tree(DT)、Naive Bayes(NB)、Neural Network(NN)和LogisticRegression(LR)作為基分類器,在實(shí)驗(yàn)中分別標(biāo)注為EDT、ENB、ENN、ELR。由表2 可知,EU-OS-ELM 算法在處理類不平衡數(shù)據(jù)流時能得到較為優(yōu)異的分類性能。在hypercube、covtype 數(shù)據(jù)集上,EU-OS-ELM算法的AUC 達(dá) 到0.99;Naive Bayes(NB)作為基分類器的集成算法[20],在covtype 數(shù)據(jù)集之外的數(shù)據(jù)集上性能較差,原因是數(shù)據(jù)集的樣本分布邊界較為復(fù)雜,會影響先驗(yàn)概率與條件概率的計(jì)算。
Table 2 AUC and G-mean values of each algorithm in different data sets表2 各算法在不同數(shù)據(jù)集中的AUC和G-mean值
在處理類不平衡數(shù)據(jù)流時,對于少數(shù)類樣本的存儲問題,EU-OS-ELM 算法通過保存樣本在特征空間的信息的方式,避免直接存儲實(shí)際樣本。由表2 與內(nèi)存使用量的分析可知,EU-OS-ELM 算法在處理類不平衡數(shù)據(jù)流的整個過程中,僅需非常少的內(nèi)存空間,即可達(dá)到甚至優(yōu)于一些傳統(tǒng)算法的分類精度。
圖3、圖4 為EU-OS-ELM 算法在Spiral 數(shù)據(jù)集上的ROC 曲線和P-R 曲線。由此可見,EU-OS-ELM 算法對應(yīng)的P-R 曲線僅次于在通用框架集成算法SE 中選擇決策樹作為基分類器時的性能,ROC 曲線基本位于左上角,表2中相應(yīng)的ROC 曲線下方面積AUC 值為0.912 3,可得出EU-OS-ELM 算法在該數(shù)據(jù)集的分類性能優(yōu)秀。
Fig.3 ROC curve on Spiral圖3 Spiral上的ROC曲線
Fig.4 P-R curve on Spiral圖4 Spiral上的P-R曲線
圖5 展示了選擇不同基分類器的集成算法SE、REA、SERA、MuSeRA,在不同數(shù)據(jù)集上與EU-OS-ELM 算法的額外內(nèi)存使用比較情況。由于SE、REA、SERA、MuSeRA 算法需要保存每個數(shù)據(jù)塊中原始的少數(shù)類樣本來處理不平衡問題,所使用的內(nèi)存空間數(shù)量為nA(Features+1),F(xiàn)eatures為樣本特征數(shù)量。隨著數(shù)據(jù)不斷到達(dá),保存歷史少數(shù)類樣本所需的額外空間不斷增加,將很快消耗完計(jì)算機(jī)的內(nèi)存空間。然而,EU-OS-ELM 算法由于使用固定大小的外權(quán)矩陣存儲歷史數(shù)據(jù)的特征信息,在整個學(xué)習(xí)過程中所使用的額外內(nèi)存恒定為一個低值,所需內(nèi)存空間數(shù)量為Nt,在不平衡數(shù)據(jù)流環(huán)境中nA?N,與歷史少數(shù)類樣本的數(shù)量規(guī)模和維度無關(guān)。因此,EU-OS-ELM 算法在提升分類準(zhǔn)確率的同時,所使用的內(nèi)存最少,當(dāng)數(shù)據(jù)量越多時,在內(nèi)存方面的優(yōu)勢越明顯。
Fig.5 Memory space for storing historical minority samples on each data set圖5 各數(shù)據(jù)集上存儲歷史少數(shù)類樣本的內(nèi)存空間
EU-OS-ELM 用于保存特征信息的外權(quán)矩陣在算法開始階段完成初始化,因此在圖5 中的每一個子圖的開始部分會出現(xiàn)EU-OS-ELM 算法所需的額外內(nèi)存空間大于比較算法的情況,外權(quán)矩陣的內(nèi)存使用量小于1 KB,并且在非常短的時間內(nèi)就會被SE、REA、SERA、MuSeRA 算法所需的內(nèi)存空間反超。因此,這一現(xiàn)象從處理不平衡數(shù)據(jù)流的整體過程而言對實(shí)驗(yàn)結(jié)論沒有造成影響。
圖5 中折線呈階梯狀分布的原因?yàn)椋孩僦恍枰4嫔贁?shù)類樣本,當(dāng)數(shù)據(jù)到達(dá)后如果掃描到多數(shù)類樣本則跳過;②Python 的內(nèi)存分配機(jī)制所導(dǎo)致,當(dāng)預(yù)留的動態(tài)內(nèi)存空間消耗完后會向系統(tǒng)請求一個新的、更大的內(nèi)存空間,然后將數(shù)據(jù)拷貝到新的空間中,并釋放舊的內(nèi)存空間,這一操作包含創(chuàng)建內(nèi)存空間、移動數(shù)據(jù)和銷毀原始內(nèi)存空間3 個步驟,在實(shí)際應(yīng)用中存在額外的時間、空間及操作系統(tǒng)開銷,但EU-OS-ELM 算法在整個處理過程中只使用一個較小且恒定的內(nèi)存空間,不存在額外開銷。為了確保實(shí)驗(yàn)的客觀性,實(shí)驗(yàn)中逐塊處理數(shù)據(jù)流,在不同算法中保證生成的數(shù)據(jù)流中數(shù)據(jù)塊的到達(dá)次序、同數(shù)據(jù)塊中的少數(shù)類樣本數(shù)量均一致,因此存儲這些少數(shù)類樣本所需的內(nèi)存空間數(shù)量也一致,即不同傳統(tǒng)算法在處理完同一數(shù)據(jù)塊后,所需內(nèi)存空間相同,解釋了圖5 傳統(tǒng)算法在間隔一定數(shù)量樣本后所需內(nèi)存空間趨于一致的現(xiàn)象。
考慮到不同數(shù)據(jù)流樣本分布情況,EU-OS-ELM 所需隱藏層節(jié)點(diǎn)數(shù)不同。在二分類問題中,輸出權(quán)重β+的內(nèi)存空間受隱藏層節(jié)點(diǎn)數(shù)的影響,如圖6 所示。由此可見,隨著隱藏層節(jié)點(diǎn)數(shù)N增加,輸出權(quán)重矩陣β+所需要的內(nèi)存空間基本上呈現(xiàn)一個線性增長趨勢,完全處于可預(yù)估和控制的狀態(tài)。
Fig.6 Memory space occupied by different hidden layer nodes圖6 不同隱藏層節(jié)點(diǎn)數(shù)占用的內(nèi)存空間
本文基于OS-ELM 算法提出一種EU-OS-ELM 的不平衡數(shù)據(jù)流分類與存儲方法。采用集成方式,在利用OSELM 訓(xùn)練基分類器時,使用不放回隨機(jī)欠采樣方法降低樣本間的相關(guān)性,使訓(xùn)練得到的分類模型在對不平衡數(shù)據(jù)流進(jìn)行分類時,具有更好的分類性能。
同時,為解決傳統(tǒng)方法因不斷保存歷史少數(shù)類樣本而導(dǎo)致的存儲問題,本文利用一個固定大小的外權(quán)矩陣β+保存少數(shù)類樣本特征信息,在需要使用歷史數(shù)據(jù)的信息時,只需查詢歷史數(shù)據(jù)的特征信息,因此大幅度減少了內(nèi)存空間的使用。此外,在實(shí)際應(yīng)用中也可用相似的方法存儲多數(shù)類樣本的特征信息。