毛明揚,徐勝超
(廣州華商學院數(shù)據(jù)科學學院,廣東 廣州 511300)
隨著時代的進步、科技的發(fā)展,數(shù)據(jù)種類日益增多。大體來說,主要分為2 大類,即連續(xù)屬性數(shù)據(jù)與離散化數(shù)據(jù)[1]。對這些數(shù)據(jù)的處理方法也是多種多樣的,尤其是在機器學習算法中,離散型數(shù)據(jù)被廣泛應用[2-3],甚至有些算法和網(wǎng)絡(luò)模型只適用于離散型數(shù)據(jù)[4-5]。但是許多數(shù)據(jù)仍具有連續(xù)性的特征,因此,如何將這些數(shù)據(jù)轉(zhuǎn)換成離散化數(shù)據(jù)非常關(guān)鍵[6-7]。
相關(guān)學者對連續(xù)屬性離散化算法進行了研究,如文獻[8]根據(jù)粗糙集理論,通過構(gòu)建森林優(yōu)化網(wǎng)絡(luò)模型,獲取最優(yōu)斷點集,并利用斷點集進行空間劃分,實現(xiàn)離散化處理;文獻[9]引入基于個體的非支配解集以平衡局部最優(yōu)與全局最優(yōu)的關(guān)系,引入基于“均值-方差”的遺傳算子增加種群多樣性,并構(gòu)建粗糙集決策表進行優(yōu)化計算,實現(xiàn)離散化處理;文獻[10]利用等距法對連續(xù)屬性數(shù)據(jù)進行首次離散化,得到斷點個數(shù),并根據(jù)屬性的重要程度重新分配每一個條件屬性的位置,把決策表相容性當作判斷條件進行相容性分析,參照分析結(jié)果對全部斷點進行逐一調(diào)整,獲取最優(yōu)斷點集完成離散化處理;文獻[11]利用不完全經(jīng)濟信息填充算法來補充不完全信息,使用粗糙集離散化算法實現(xiàn)了基于粗糙集的補充經(jīng)濟信息離散化。上述方法雖然可以完成連續(xù)屬性離散化操作,但是全局尋優(yōu)能力較差,易進入局部最優(yōu),影響最后的離散效果,且由于算法較為繁雜,導致效率較低。
基于上述方法所存在的效率較低,離散效果較差的問題,本文提出一種面向粒子群優(yōu)化BP 神經(jīng)網(wǎng)絡(luò)的粗糙集連續(xù)屬性離散化算法,以提高糙集連續(xù)屬性的離散效果。首先對粗糙集連續(xù)屬性離散化進行分析,并基于粒子群算法運行參數(shù)較少、易實現(xiàn)全局最佳的優(yōu)勢[12],來對BP 神經(jīng)網(wǎng)絡(luò)進行優(yōu)化,提高模型訓練效果,減少訓練損失,使收斂速度增快,并避免陷入局部最優(yōu),完成對具有連續(xù)屬性的信息系統(tǒng)進行分類,從而獲取多個斷點,找到最佳斷點集,完成粗糙集連續(xù)屬性的離散化。
BP神經(jīng)網(wǎng)絡(luò)容錯能力好,學習能力強[13-14],而粗糙集理論則具有處理不完備數(shù)據(jù)的能力[15],在采用BP 神經(jīng)網(wǎng)絡(luò)進行粗糙集連續(xù)屬性離散化時,通常會由于搜索空間較大,易陷入局部最優(yōu)而難以跳出,且訓練時間較長。而粒子群算法,采用了全局搜索方法,有較好的全局優(yōu)化性能,能夠在多峰函數(shù)優(yōu)化和搜索空間較大的情況下找到較優(yōu)解,且參數(shù)少,易于實現(xiàn)和調(diào)節(jié),可自適應調(diào)節(jié)粒子速度,可使BP神經(jīng)網(wǎng)絡(luò)快速地找到最佳斷點集,彌補了BP 神經(jīng)網(wǎng)絡(luò)在進行粗糙集連續(xù)屬性離散化所存在的不足,實現(xiàn)高效精準的連續(xù)屬性的離散化操作。
離散化就是把具有粗糙集連續(xù)特點的屬性,通過某種方法轉(zhuǎn)換成離散的形式。在系統(tǒng)Z中,設(shè)定某個具有連續(xù)性的條件屬性用ai∈A來描述,且Hmin≤ai≤Hmax,斷 點 集 用C={ }c1,c2,…,cm來 描 述,且Hmin≤ci≤Hmax。利用C能夠把ai的取值區(qū)域分割成數(shù)量是m+1個的子區(qū)間,并將全部原始值利用數(shù)量是m+1個標簽來替換。存在于C內(nèi)的所有斷點c1可以把ai離散化為包含數(shù)量是m+1個屬性值的離散屬性。
由此可以看出,進行離散化的實質(zhì)就是通過獲取最優(yōu)斷點集對具有連續(xù)特點的屬性取值空間進行有效分割,從而獲取最佳的離散化區(qū)間的過程[16]。因此,關(guān)于連續(xù)屬性的離散化可以將其轉(zhuǎn)換成對最佳斷點集的獲取。因為最佳斷點集將在初始候選斷點集內(nèi)產(chǎn)生,所以需要先進行候選斷點集獲取,然后在其中挑選出最佳斷點集,進而實現(xiàn)連續(xù)屬性的離散化[17-18]。
因為候選斷點集是由多個子斷點集構(gòu)成,而子斷點集則由多個斷點組成,所以斷點的獲取非常關(guān)鍵,而斷點則可根據(jù)信息系統(tǒng)Z中包含的屬性進行分類獲取,每個屬性可視為一個類別,進而形成一個斷點。泛化性能好是BP神經(jīng)網(wǎng)絡(luò)的優(yōu)勢,所以本文利用該網(wǎng)絡(luò)模型對具有連續(xù)屬性的信息系統(tǒng)進行分類,從而獲取多個斷點,形成子斷點集,進而構(gòu)建候選斷點集[19-21]。
在BP 神經(jīng)網(wǎng)絡(luò)的前向傳播中,設(shè)定存在于網(wǎng)絡(luò)輸出層中位置是i的神經(jīng)元與上個層次中位置是j的神經(jīng)元的連接權(quán)重用wij來描述,該神經(jīng)元的輸入、閾值分別用Ii和δi描述,那么它的輸出則可以描述為:
將O與期望值作對比運算后,得到傳播誤差E=(b-O)2/2,其中b為期望值。
當傳播誤差符合設(shè)定的精度要求時,BP 神經(jīng)網(wǎng)絡(luò)的訓練結(jié)束;反之則繼續(xù)對每一層的w與δ進行調(diào)節(jié),直至傳播誤差在規(guī)定范圍內(nèi),這時候選斷點集的獲取精度較高。
本文采用粒子群算法(Particle Swarm Optimization,PSO)改進BP 神經(jīng)網(wǎng)絡(luò)中w與δ初始值,以此提升其分類識別精度[22-24]。以此獲取關(guān)于具有連續(xù)屬性的信息Z系統(tǒng)的高品質(zhì)候選斷點集,同時可以避免該網(wǎng)絡(luò)產(chǎn)生過擬合的問題[25-27]。
設(shè)定PSO 位置為BP 神經(jīng)網(wǎng)絡(luò)最初的權(quán)值與閾值,而算法最終尋得的整體最佳位置就是最佳初始權(quán)值與閾值。
設(shè)定存在于維度為S空間中的種群由數(shù)量是N的粒子構(gòu)建,描述為Q=( )Q1,Q2,…,QN,其中粒子i在該空間內(nèi)的位置用Qi=( )Qi1,Qi2,…,QiS來描述,移動速度用Vi=( )Vi1,Vi2,…,ViS來描述,個體與整體種群極值用來描述。
在迭代過程中,利用pg與pi對粒子的速度與位置進行改變,該過程的更新模型可以描述為:
其中,慣性權(quán)值用ω來描述,粒子i的移動速度用來描述,位置用來描述,當下迭代數(shù)用t來描述,學習因數(shù)用λ1、λ2來描述,隨機數(shù)用r1和r2來描述,且二者的取值范圍為[0,1]。為避免粒子出現(xiàn)盲目搜尋的現(xiàn)象,需要對其速度與位置進行設(shè)限,通常設(shè)限的范圍分別為
利用粒子群算法可以獲取到BP神經(jīng)網(wǎng)絡(luò)模型中w與δ最佳初始值,通過優(yōu)化后的BP 深度神經(jīng)網(wǎng)絡(luò),獲得具有連續(xù)特征的斷點集。具體流程如圖1所示。
圖1 粒子群算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)流程
粒子群算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)流程如下:1)初始化參數(shù)。
2)在BP 神經(jīng)網(wǎng)絡(luò)中,PSO 算法適應度函數(shù)的設(shè)定是通過測試樣本獲得的傳播誤差,利用該函數(shù)求得所有粒子適應度值,并進行對比,選取pg與pi。
3)利用公式(2)更新PSO算法中所有粒子的速度與位置,并判斷是否在允許范圍內(nèi)[28]。
4)更新PSO中全部粒子的適應度值,保留所有粒子個體最佳位置,并從中挑選出整體最佳位置。
5)對獲取整體最佳位置進行考量,判斷其是否為全局最優(yōu)解或是否符合算法結(jié)束要求[29-31]。若滿足條件,則停止操作,輸出運算結(jié)果,得到BP 神經(jīng)網(wǎng)絡(luò)最佳的w與δ;否則,返至步驟2。
6)將獲取到的最佳w、δ導入BP 網(wǎng)絡(luò)中,經(jīng)過學習訓練,得到改進的BP神經(jīng)網(wǎng)絡(luò)模型。
將具有連續(xù)屬性的信息系統(tǒng)Z輸入至優(yōu)化后的BP 神經(jīng)網(wǎng)絡(luò)模型中,便可以獲取關(guān)于Z的子斷點集,進而得到候選斷點集。
利用PSO 算法良好的尋優(yōu)性能從已獲取的候選斷點集中搜尋最佳斷點集。通過最佳斷點集分割空間,得到最優(yōu)離散區(qū)間,實現(xiàn)連續(xù)屬性的離散化。
關(guān)于斷點的選取應符合2 點要求,也就是最小化的斷點數(shù)目,且通過該斷點獲取的離散數(shù)據(jù)應與系統(tǒng)Z的屬性保持高度一致性,所以關(guān)于解決連續(xù)屬性離散化問題的PSO算法適應度函數(shù)可描述為:
其中,個體候選斷點集用X來描述,屬性依賴度用d來描述,初始斷點總數(shù)量用L來描述,個體斷點個數(shù)用M來描述,調(diào)節(jié)因數(shù)用?和β來描述。通過式(3)可以看出,斷點數(shù)量與適應度值呈負相關(guān)性,系統(tǒng)一致性與適應度值呈正相關(guān)性。
利用PSO 算法解決連續(xù)屬性離散化問題[32],首先應將通過優(yōu)化BP神經(jīng)網(wǎng)絡(luò)獲取的候選斷點集映射成PSO 算法中的粒子,通過改變粒子的速度與位置,找到最佳斷點集。具體過程如下:
1)對參數(shù)進行初始化操作。
2)利用粒子代表的斷點集把信息系統(tǒng)Z轉(zhuǎn)換成離散性系統(tǒng),計算其中的斷點數(shù)量以及屬性依賴度,再由公式(3)求出全部粒子適應度值f'。
3)如果f'優(yōu)于當前pi,那么把f'調(diào)整為pi,反之則不作調(diào)整;如果此時的pi優(yōu)化于當前pg,那么把pi調(diào)整為pg,反之則不作調(diào)整。
4)通過公式(2)更新PSO算法中所有粒子的速度與位置,并判斷是否在允許范圍內(nèi),若超出設(shè)定好的范圍,則默認為當前的速度與位置。
5)利用更新后的粒子代表的斷點集,重新處理信息系統(tǒng),進行離散化,求得斷點數(shù)量以及屬性依賴度,更新所有粒子f',獲取個體及全局最佳位置。
6)如果達到迭代要求,進入步驟8,反之執(zhí)行步驟7。
7)判斷屬性依賴度是否為1,如果是1 則進入步驟8,反之返至步驟2。
8)將具有最佳的粒子f'進行輸出,該粒子代表的斷點集即為最優(yōu)斷點集。
采用最佳斷點集進行離散化,便可得到關(guān)于系統(tǒng)Z的最佳離散數(shù)據(jù)。
本文以某網(wǎng)站服務器中的數(shù)據(jù)為實驗對象,該網(wǎng)站屬于綜合服務類網(wǎng)絡(luò),包括咨詢、新聞、交易等幾大板塊,涵蓋科技、經(jīng)濟、商業(yè)、旅游等多行業(yè)信息,每天訪問人數(shù)眾多,信息量具大,存在大量連續(xù)屬性數(shù)據(jù)。
對該網(wǎng)站某一時間段具有連續(xù)屬性的數(shù)據(jù)進行采集,形成粗糙集連續(xù)屬性數(shù)據(jù)集,該數(shù)據(jù)集原始分布如圖2 所示。采用文獻[10]中的方法作為對比方法,實驗的粒子群算法有關(guān)參數(shù)如表1所示。
圖2 連續(xù)屬性數(shù)據(jù)原始分布圖
為了考量本文方法的性能,實驗從該網(wǎng)站抽取了具有連續(xù)屬性的數(shù)據(jù)樣本480個,設(shè)定迭代次數(shù)為160,經(jīng)過測試得出該模型訓練的損失結(jié)果,如圖3所示。
圖3 改進PSO優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)模型訓練損失結(jié)果
由圖3 可知,改進PSO 優(yōu)化的BP 神經(jīng)網(wǎng)絡(luò)模型訓練損失隨著迭代次數(shù)的增加而下降。本次實驗共計迭代160 次,前10 次迭代,該網(wǎng)絡(luò)模型的訓練損失下降幅度非常大,呈直線式下降;當?shù)螖?shù)在10~40 次之間時,網(wǎng)絡(luò)模型的訓練損失下降趨勢變緩;而當?shù)螖?shù)大于40 次之后,該網(wǎng)絡(luò)模型的網(wǎng)絡(luò)波動較小,逐漸呈收斂態(tài)勢,并且訓練損失也趨于0。由此說明,本文采用粒子群算法改進BP 神經(jīng)網(wǎng)絡(luò)中的權(quán)值與閾值,能夠有效提高模型訓練效果,減少訓練損失,使收斂速度增快,具有較強的泛化能力,是比較優(yōu)質(zhì)的網(wǎng)絡(luò)模型。
為了驗證本文方法的有效性,分別應用本文的方法和對比方法,對這一數(shù)據(jù)集進行離散化,得出的離散化后數(shù)據(jù)分布結(jié)果如圖4所示。
圖4 經(jīng)過離散化后的數(shù)據(jù)分布情況
由圖2 可知,采集到的連續(xù)屬性數(shù)據(jù)較為集中,具有不同屬性的數(shù)據(jù)交織在一起排列,連續(xù)性較強。而通過圖4 可以看出,利用本文方法對該連續(xù)屬性數(shù)據(jù)集進行了離散化操作,原連續(xù)屬性數(shù)據(jù)被斷點分割成界線分明的不同區(qū)間,且按照自身屬性特征進行了重新分布,得到了離散化后的數(shù)據(jù)。而采用文獻[10]方法對該連續(xù)屬性數(shù)據(jù)集進行了離散化操作,原連續(xù)屬性數(shù)據(jù)雖被斷點分割成不同區(qū)間,但各區(qū)間中仍存在其他的屬性數(shù)據(jù),并未按自身屬性特征分布,離散化效果較差。由此可以看出,本文方法利用優(yōu)化后的BP 深度神經(jīng)網(wǎng)絡(luò)對連續(xù)屬性數(shù)據(jù)進行了分類,找到最佳斷點集,使得粗糙集連續(xù)屬性數(shù)據(jù)的離散化效果較好,能夠為后續(xù)相關(guān)數(shù)據(jù)的處理打下基礎(chǔ)。
對于粗糙集連續(xù)屬性離散化問題來說,利用最優(yōu)斷點集中的斷點進行離散化操作后,獲取的離散數(shù)據(jù)與原信息系統(tǒng)中的數(shù)據(jù)屬性是否具有高度一致性這點非常重要。為此,本文實驗分別從該網(wǎng)站的咨詢板塊、新聞板塊以及交易板塊采集了不同類型的具有連續(xù)屬性的數(shù)據(jù)集,分別利用本文方法和文獻[10]方法對這3 種不同類型的數(shù)據(jù)集進行離散化操作,之后對獲取的離散數(shù)據(jù)的一致性情況進行測試,最后得出的實驗結(jié)果如圖5所示。
圖5 數(shù)據(jù)一致性檢測
由圖5 可知,利用本文方法對該網(wǎng)站不同類型的具有連續(xù)屬性的數(shù)據(jù)進行離散化操作,得到的離散數(shù)據(jù)與原始數(shù)據(jù)的屬性具有高度一致性,尤其是當?shù)螖?shù)到達30 次后,各類離散數(shù)據(jù)與原始數(shù)據(jù)的屬性一致性已達到97%以上,當?shù)螖?shù)為50次時,一致性更是趨于100%。而采用文獻[10]方法對該網(wǎng)站不同類型的具有連續(xù)屬性的數(shù)據(jù)進行離散化操作,得到的離散數(shù)據(jù)與原始數(shù)據(jù)的屬性的一致性相比于本文所提方法較差,在迭代次數(shù)到達40 次后,各類離散數(shù)據(jù)與原始數(shù)據(jù)的屬性一致性達到94%左右,在迭代次數(shù)為50 次時,各類離散數(shù)據(jù)與原始數(shù)據(jù)的屬性一致性達到95%左右。由此可以看出,本文利用PSO算法良好的尋優(yōu)性能搜尋出最佳斷點集,獲得最佳的離散化區(qū)間,高度還原了原始數(shù)據(jù)的屬性特點,對解決連續(xù)屬性離散化問題具有很好的效果。
因為連續(xù)屬性離散化是對數(shù)據(jù)進行預處理的一種方式,因此對離散方法優(yōu)劣的評價,最直接的方法便是將其應用于不同算法中,判斷其是否提升了這些算法的精度與收斂速度。為了衡量本文方法的實用性,實驗將該網(wǎng)站分別采用本文所提方法和文獻[10]方法離散化的數(shù)據(jù)集作為樣本數(shù)據(jù),對支持向量機算法、樸素貝葉斯算法以及Cart決策樹算法的分類精度與收斂速度進行了測試,得出的結(jié)果如表2所示。
表2 不同算法的分類精度與收斂速度測試
由表2 可知,利用本文方法獲取的離散化數(shù)據(jù)集應用于支持向量機算法、樸素貝葉斯算法以及Cart決策樹算法后,分類精度均在99%以上,收斂速度最慢為0.75 s。而利用文獻[10]方法獲取的離散化數(shù)據(jù)集應用于支持向量機算法、樸素貝葉斯算法以及Cart決策樹算法后,所達到的最高分類精度為93.27%,最快收斂速度為1.74 s。兩者方法相比,利用本文方法得到的離散化數(shù)據(jù)集,這3 種算法在分類精度與收斂速度方面都取得了較好的表現(xiàn)。由此說明,本文方法利用粒子群算法改進BP 神經(jīng)網(wǎng)絡(luò),基于優(yōu)化后的神經(jīng)網(wǎng)絡(luò)對連續(xù)屬性的信息系統(tǒng)進行分類,能夠有效提高分類精度,加快收斂速度,具有較強的應用前景。
數(shù)據(jù)離散化是數(shù)據(jù)挖掘中一個非常關(guān)鍵的環(huán)節(jié),離散化水平的高低會直接影響到后續(xù)的數(shù)據(jù)處理,從而影響到整個分析的準確性。由于進行離散化時,獲取的斷點集并非最優(yōu)集合,導致離散效果較差,因此本文提出了面向粒子群優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的粗糙集連續(xù)屬性離散化算法,利用改進的BP 神經(jīng)網(wǎng)絡(luò)模型對連續(xù)屬性信息系統(tǒng)中的多個候選斷點集進行提取,并在其中選出最優(yōu)的斷點集合,再用最優(yōu)的斷點集合來劃分數(shù)據(jù)空間,使其連續(xù)屬性離散。實驗結(jié)果表明,該算法能有效地處理粗糙集中的連續(xù)屬性的離散化,適用于此類問題的求解,具有很大的應用空間,可用于環(huán)境監(jiān)測、醫(yī)療領(lǐng)域等領(lǐng)域。在未來會通過引入自適應學習策略、啟發(fā)式策略等手段,對所設(shè)置的參數(shù)進行優(yōu)化,以進一步提高算法的實際應用效果。