于欣平
(東北石油大學(xué),大慶 163318)
數(shù)據(jù)挖掘分類算法種類眾多,每一種數(shù)據(jù)挖掘分類算法都會有一個相應(yīng)的分類器與之相配。而分類器則直接決定著數(shù)據(jù)挖掘是否能夠達到精準高效,作為其中使用頻率最廣的一種方法,人工神經(jīng)網(wǎng)絡(luò)通過對人腦生物神經(jīng)網(wǎng)絡(luò)進行模擬,連接多個神經(jīng)元節(jié)點,進而有效完成對各種類型數(shù)據(jù)的精確處理。本文將通過選擇SVM神經(jīng)網(wǎng)絡(luò)算法、BP神經(jīng)網(wǎng)絡(luò)算法和ELM神經(jīng)網(wǎng)絡(luò)算法,通過結(jié)合具體分類實例對其進行比較分析,從而對各算法的具體優(yōu)勢特點進行準確說明。
(1)具體內(nèi)涵
現(xiàn)階段國內(nèi)外關(guān)于數(shù)據(jù)挖掘的研究眾多,但就數(shù)據(jù)挖掘的標準定義尚未形成統(tǒng)一規(guī)范。絕大多數(shù)研究人員認為,數(shù)據(jù)挖掘指的就是通過在大量的數(shù)據(jù)系統(tǒng)或是極為龐大的數(shù)據(jù)庫中,準確提取出用戶所需價值信息,從而有效滿足用戶的數(shù)據(jù)需求。數(shù)據(jù)挖掘有著多樣化的知識類型,包括聚類、分類等等,而不同類型的數(shù)據(jù)挖掘所使用的具體方法也大相徑庭[1]。在分類和聚類當中,前者指的是在數(shù)據(jù)庫當中能夠?qū)?shù)據(jù)項映射至給定類別的分類函數(shù),而后者則指的是通過立足數(shù)據(jù)的具體特點在對其進行類別劃分之后,無限縮小相同類別的個體間距,進而有效達到聚類的效果。
(2)基本過程
在數(shù)據(jù)挖掘的過程中,首先需要人們盡可能多地搜集整理相關(guān)原始數(shù)據(jù),原始數(shù)據(jù)量越大,后續(xù)的數(shù)據(jù)挖掘精確度將越高。而在完成數(shù)據(jù)的采集之后,需要對其進行抽樣與清理,也就是將殘缺數(shù)據(jù)、不真實數(shù)據(jù)等篩出之后,從中選取最具有代表性的數(shù)據(jù),對其進行集中整理之后形成最終的數(shù)據(jù)樣本集。如果在經(jīng)過抽樣和清理之后,數(shù)據(jù)形式仍然與規(guī)定要求不符,則需要轉(zhuǎn)換數(shù)據(jù),在必要情況下還需要重新進行原始數(shù)據(jù)的抽樣清理,直至數(shù)據(jù)形式與規(guī)定要求相符[2]。隨后通過建立數(shù)據(jù)倉庫對數(shù)據(jù)進行存儲,并借助數(shù)據(jù)挖掘引擎和數(shù)據(jù)集成等功能對其進行深度挖掘和分析,從而有效幫助用戶提取關(guān)鍵數(shù)據(jù)。
為有效比較神經(jīng)網(wǎng)絡(luò)下不同數(shù)據(jù)挖掘分類算法的優(yōu)勢特點,本文通過從數(shù)據(jù)庫當中選擇3種不同的玉米種子,利用SVM神經(jīng)網(wǎng)絡(luò)算法、BP神經(jīng)網(wǎng)絡(luò)算法以及ELM神經(jīng)網(wǎng)絡(luò)算法對其進行分集。從數(shù)據(jù)庫當中筆者通過抽樣清理的方式提取了兩百條記錄,每一條記錄都含有密實度、內(nèi)核的長度與寬度等屬性,小麥種子類型則分別使用二進制數(shù){1、2、3}進行表示。
(1) SVM神經(jīng)網(wǎng)絡(luò)算法
在利用load()函數(shù)將原始數(shù)據(jù)全部導(dǎo)入專門的文件中進行存儲,為有效保障數(shù)據(jù)的一般性,只隨機抽取80%的數(shù)據(jù)集,總共抽取160條記錄,再將其整理成訓(xùn)練集統(tǒng)計模型之后,將剩余20%的記錄整理成測試集。經(jīng)過MATLAB帶有的mapminmax()函數(shù)歸一化處理訓(xùn)練數(shù)據(jù)后,本文將直接使用svmtrain()創(chuàng)建SVM神經(jīng)網(wǎng)絡(luò),同時對其進行訓(xùn)練[3]。在對其進行網(wǎng)絡(luò)測試時,本文將使用svmpredict()函數(shù),在完成網(wǎng)絡(luò)參數(shù)的設(shè)置之后直接運行程序即可完成實驗。而為了能夠使得試驗更加真實可靠,本次實驗總共進行了5次重復(fù)測試,最終實驗結(jié)果,如表1所示。
表1 SVM神經(jīng)網(wǎng)絡(luò)算法下的實驗結(jié)果
通過對實驗結(jié)果進行進一步分析,我們可以準確了解到在SVM神經(jīng)網(wǎng)絡(luò)算法下,平均準確率和建模時間分別為93.824%以及0.2892s,方差則為0.1%。鑒于所采用的研究工具自身信度較高,并且在抽樣清理時將殘缺、錯誤記錄排除在外,同時筆者后期又在不同時間內(nèi)進行了重復(fù)實驗,實驗結(jié)果仍然保持一致,因此此次實驗結(jié)論具有較高的可信度。
(2) BP神經(jīng)網(wǎng)絡(luò)算法
在運用BP神經(jīng)網(wǎng)絡(luò)算法分類玉米種子集的過程中,方法與使用SVM神經(jīng)網(wǎng)絡(luò)算法分類玉米種子集基本相同,在完成訓(xùn)練數(shù)據(jù)的歸一化處理之后,輸出和輸入神經(jīng)元個數(shù)分別為3與7,代表總共有3種玉米種子及每一種玉米種子的屬性特點共有7個。在建立BP神經(jīng)網(wǎng)絡(luò)的過程中,本文將通過使用newff()函數(shù),隱含層節(jié)點傳遞函數(shù)選用正切S型傳遞函數(shù),而輸出層節(jié)點傳遞函數(shù)則選擇使用purelin這一線型傳遞函數(shù)。訓(xùn)練函數(shù)則選用Levenberg Marquardt當中的BP算法訓(xùn)練函數(shù),在完成網(wǎng)絡(luò)參數(shù)的逐一設(shè)置之后,分別運用train()函數(shù)和sim()函數(shù)進行BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練和仿真測試[4]。在經(jīng)過5次重復(fù)測試后得到實驗結(jié)果,如表2所示。
表2 BP神經(jīng)網(wǎng)絡(luò)算法下的實驗結(jié)果
在對實驗結(jié)果進行深入統(tǒng)計分析之后,可以準確得知使用BP神經(jīng)網(wǎng)絡(luò)算法對數(shù)據(jù)集進行分類,其平均準確率和平均建模時間分別為83.771%、1.8322s,方差則為0.4%。
(3) ELM神經(jīng)網(wǎng)絡(luò)算法
通過利用load()函數(shù)將所有原始數(shù)據(jù)導(dǎo)入在專門建立的一個名為種子的文件中,完成原始數(shù)據(jù)的存儲工作??紤]到需要保障數(shù)據(jù)的一般性,只隨機抽取80%的數(shù)據(jù)集,也就是總共抽取160條記錄,在將其整理成訓(xùn)練集統(tǒng)計模型之后,將剩余記錄整理成測試集[5]。經(jīng)過MATLAB帶有的mapminmax()函數(shù)歸一化處理訓(xùn)練數(shù)據(jù)后可以得到3個輸出神經(jīng)元和7個輸入神經(jīng)元,分別表示種子的類型和屬性特征數(shù)量。在進行ELM神經(jīng)網(wǎng)絡(luò)的建立以及訓(xùn)練過程中,本文將使用elmtrain()函數(shù),從函數(shù)中提取出sig并將其設(shè)定成激勵函數(shù)。完成網(wǎng)絡(luò)參數(shù)的逐一設(shè)定之后通過使用elmpredict()函數(shù)仿真測試創(chuàng)建的ELM神經(jīng)網(wǎng)絡(luò)即可。而為了能夠使得試驗更加真實可靠,在條件允許的情況下需要對其進行多次重復(fù)測試。本次實驗總共進行了5次重復(fù)測試,最終實驗結(jié)果,如表3所示。
表3 ELM神經(jīng)網(wǎng)絡(luò)算法下的實驗結(jié)果
通過對實驗結(jié)果進行進一步統(tǒng)計分析,可以得知在5次重復(fù)測試實驗中,使用ELM神經(jīng)網(wǎng)絡(luò)算法的平均準確率為96.341%,建模時間的平均值則為0.2018s,方差則為0.1%。
從現(xiàn)有數(shù)據(jù)庫中本文通過選擇與我國通化葡萄酒有關(guān)的原始數(shù)據(jù),數(shù)據(jù)集中共有相關(guān)記錄180條,每一條記錄當中都擁有包括酒精、色調(diào)等在內(nèi)的10個屬性特征,在實驗中隨機選擇數(shù)據(jù)集一半的樣本記錄作為訓(xùn)練集,將剩余樣本記錄整理為測試集。
(1) SVM神經(jīng)網(wǎng)絡(luò)算法
在利用importdata()函數(shù)將原始數(shù)據(jù)全部導(dǎo)入專門的文件中進行存儲,為有效保障數(shù)據(jù)的一般性,只隨機抽取80%的數(shù)據(jù)集,總共抽取160條記錄,再將其整理成訓(xùn)練集統(tǒng)計模型之后,將剩余20%的記錄整理成測試集。經(jīng)過歸一化處理訓(xùn)練數(shù)據(jù)后,本文將直接使用svmtrain()創(chuàng)建SVM神經(jīng)網(wǎng)絡(luò),同時對其進行訓(xùn)練。在完成網(wǎng)絡(luò)參數(shù)的設(shè)置之后直接運行程序即可完成實驗[6]。本次實驗總共進行了5次重復(fù)測試,最終實驗結(jié)果,如表4所示。
通過對實驗結(jié)果進行進一步分析,我們可以準確了解到在SVM神經(jīng)網(wǎng)絡(luò)算法下,平均準確率和建模時間分別為98.427%以及0.031 3 s,方差則為3.87E-5。
表4 SVM神經(jīng)網(wǎng)絡(luò)算法下的實驗結(jié)果
(2) BP神經(jīng)網(wǎng)絡(luò)算法
與前文提及的玉米種子集分類基本相同,所有原始數(shù)據(jù)首先需要利用importdata()函數(shù),將其統(tǒng)一導(dǎo)入和存儲在專門的文件當中。并隨機從數(shù)據(jù)集當中抽取一般作為訓(xùn)練集統(tǒng)計模型,以有效保障數(shù)據(jù)集的一般性。剩余數(shù)據(jù)記錄將被作為測試集。在歸一化處理訓(xùn)練數(shù)據(jù)之后,將分別獲得3個輸出神經(jīng)元和十個輸入神經(jīng)元,代表總共有3種類型各異的通化葡萄酒,分別用1、2、3進行表示,而每一個種葡萄酒均擁有10個屬性特征[7]。在建立BP神經(jīng)網(wǎng)絡(luò)的過程中,本文將通過使用newff()函數(shù),隱含層節(jié)點傳遞函數(shù)選用正切S型傳遞函數(shù),而輸出層節(jié)點傳遞函數(shù)則選擇使用purelin這一線型傳遞函數(shù)。訓(xùn)練函數(shù)則選用Levenberg Marquardt當中的BP算法訓(xùn)練函數(shù),在完成網(wǎng)絡(luò)參數(shù)的逐一設(shè)置之后,分別運用train()函數(shù)和sim()函數(shù)進行BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練和仿真測試。在經(jīng)過5次重復(fù)測試后得到實驗結(jié)果,如表5所示。
在對實驗結(jié)果進行深入統(tǒng)計分析之后,可以準確得知使用BP神經(jīng)網(wǎng)絡(luò)算法對數(shù)據(jù)集進行分類,其平均準確率和平均建模時間分別為84.047%、0.4577s,方差則為0.19%。
(3) ELM神經(jīng)網(wǎng)絡(luò)算法
在歸一化處理訓(xùn)練數(shù)據(jù)后,本文將使用elmtrain()函數(shù),進行ELM神經(jīng)網(wǎng)絡(luò)的建立以及訓(xùn)練[8]。通過從函數(shù)中提取出sig并將其設(shè)定成激勵函數(shù)并完成網(wǎng)絡(luò)參數(shù)的逐一設(shè)定,隨后使用elmpredict()函數(shù)仿真測試創(chuàng)建的ELM神經(jīng)網(wǎng)絡(luò)即可。通過反復(fù)5次進行實驗測試之后,得到了實驗結(jié)果,如表6所示。
表5 BP神經(jīng)網(wǎng)絡(luò)算法下的實驗結(jié)果
表6 ELM神經(jīng)網(wǎng)絡(luò)算法下的實驗結(jié)果
通過對實驗結(jié)果進行進一步統(tǒng)計分析,可以得知在5次重復(fù)測試實驗中,使用ELM神經(jīng)網(wǎng)絡(luò)算法對紅酒集進行分類之后,平均準確率為94.831%,建模所需平均時間值則為0.007 4 s,方差則為0.01%。
在對玉米種子集進行分類的實驗當中,使用SVM神經(jīng)網(wǎng)絡(luò)算法、BP神經(jīng)網(wǎng)絡(luò)算法、ELM神經(jīng)網(wǎng)絡(luò)算法的平均建模時間則分別為0.289 2 s、1.832 2 s以及0.201 8 s。具體情況如表7所示。
表7 案例一3種算法比較
由此我們可以看出,ELM神經(jīng)網(wǎng)絡(luò)算法分類玉米種子集的效果最優(yōu),不僅正確率最高且花費的建模時間也最短,而SVM神經(jīng)網(wǎng)絡(luò)算法次之,BP神經(jīng)網(wǎng)絡(luò)算法的建模時間最長[9]。
在對紅酒集進行分類的實驗當中,使用SVM神經(jīng)網(wǎng)絡(luò)算法、BP神經(jīng)網(wǎng)絡(luò)算法、ELM神經(jīng)網(wǎng)絡(luò)算法的平均準確率分別為98.427%、84.047%以及94.831%。而使用3種神經(jīng)網(wǎng)絡(luò)算法的平均建模時間則分別為0.031 3 s、0.457 7 s以及0.007 4 s,具體情況如表8所示。
表8 案例二3種算法比較
在對紅酒集進行分類當中,總體來看仍然是ELM神經(jīng)網(wǎng)絡(luò)算法分類的效果最優(yōu)[10],雖然其正確率要略低于SVM神經(jīng)網(wǎng)絡(luò)算法,但其建模時間比較短且本身也具有一定的正確率。SVM神經(jīng)網(wǎng)絡(luò)算法次之,BP神經(jīng)網(wǎng)絡(luò)算法的建模時間則最長。
本文通過對基于神經(jīng)網(wǎng)絡(luò)下的不同數(shù)據(jù)挖掘分類算法進行分析,在以玉米種子集和紅酒集為例進行實驗之后,根據(jù)實驗結(jié)果可知ELM神經(jīng)網(wǎng)絡(luò)算法擁有較強的建模性能和較高的正確率。SVM神經(jīng)網(wǎng)絡(luò)算法的建模時間也相對較短,同樣具有較高的正確率,而BP神經(jīng)網(wǎng)絡(luò)算法的正確率最低,且需要花費較長的建模時間。整體來看SVM神經(jīng)網(wǎng)絡(luò)算法和ELM神經(jīng)網(wǎng)絡(luò)算法“旗鼓相當”,但由于后者使用的隱含層節(jié)點更少,因此其整體性能更優(yōu),在數(shù)據(jù)挖掘分類當中通過靈活運用ELM神經(jīng)網(wǎng)絡(luò)算法,可以獲得良好的分類效果。