于欣平
(東北石油大學,大慶 163318)
數據挖掘分類算法種類眾多,每一種數據挖掘分類算法都會有一個相應的分類器與之相配。而分類器則直接決定著數據挖掘是否能夠達到精準高效,作為其中使用頻率最廣的一種方法,人工神經網絡通過對人腦生物神經網絡進行模擬,連接多個神經元節點,進而有效完成對各種類型數據的精確處理。本文將通過選擇SVM神經網絡算法、BP神經網絡算法和ELM神經網絡算法,通過結合具體分類實例對其進行比較分析,從而對各算法的具體優勢特點進行準確說明。
(1)具體內涵
現階段國內外關于數據挖掘的研究眾多,但就數據挖掘的標準定義尚未形成統一規范。絕大多數研究人員認為,數據挖掘指的就是通過在大量的數據系統或是極為龐大的數據庫中,準確提取出用戶所需價值信息,從而有效滿足用戶的數據需求。數據挖掘有著多樣化的知識類型,包括聚類、分類等等,而不同類型的數據挖掘所使用的具體方法也大相徑庭[1]。在分類和聚類當中,前者指的是在數據庫當中能夠將數據項映射至給定類別的分類函數,而后者則指的是通過立足數據的具體特點在對其進行類別劃分之后,無限縮小相同類別的個體間距,進而有效達到聚類的效果。
(2)基本過程
在數據挖掘的過程中,首先需要人們盡可能多地搜集整理相關原始數據,原始數據量越大,后續的數據挖掘精確度將越高。而在完成數據的采集之后,需要對其進行抽樣與清理,也就是將殘缺數據、不真實數據等篩出之后,從中選取最具有代表性的數據,對其進行集中整理之后形成最終的數據樣本集。如果在經過抽樣和清理之后,數據形式仍然與規定要求不符,則需要轉換數據,在必要情況下還需要重新進行原始數據的抽樣清理,直至數據形式與規定要求相符[2]。隨后通過建立數據倉庫對數據進行存儲,并借助數據挖掘引擎和數據集成等功能對其進行深度挖掘和分析,從而有效幫助用戶提取關鍵數據。
為有效比較神經網絡下不同數據挖掘分類算法的優勢特點,本文通過從數據庫當中選擇3種不同的玉米種子,利用SVM神經網絡算法、BP神經網絡算法以及ELM神經網絡算法對其進行分集。從數據庫當中筆者通過抽樣清理的方式提取了兩百條記錄,每一條記錄都含有密實度、內核的長度與寬度等屬性,小麥種子類型則分別使用二進制數{1、2、3}進行表示。
(1) SVM神經網絡算法
在利用load()函數將原始數據全部導入專門的文件中進行存儲,為有效保障數據的一般性,只隨機抽取80%的數據集,總共抽取160條記錄,再將其整理成訓練集統計模型之后,將剩余20%的記錄整理成測試集。經過MATLAB帶有的mapminmax()函數歸一化處理訓練數據后,本文將直接使用svmtrain()創建SVM神經網絡,同時對其進行訓練[3]。在對其進行網絡測試時,本文將使用svmpredict()函數,在完成網絡參數的設置之后直接運行程序即可完成實驗。而為了能夠使得試驗更加真實可靠,本次實驗總共進行了5次重復測試,最終實驗結果,如表1所示。

表1 SVM神經網絡算法下的實驗結果
通過對實驗結果進行進一步分析,我們可以準確了解到在SVM神經網絡算法下,平均準確率和建模時間分別為93.824%以及0.2892s,方差則為0.1%。鑒于所采用的研究工具自身信度較高,并且在抽樣清理時將殘缺、錯誤記錄排除在外,同時筆者后期又在不同時間內進行了重復實驗,實驗結果仍然保持一致,因此此次實驗結論具有較高的可信度。
(2) BP神經網絡算法
在運用BP神經網絡算法分類玉米種子集的過程中,方法與使用SVM神經網絡算法分類玉米種子集基本相同,在完成訓練數據的歸一化處理之后,輸出和輸入神經元個數分別為3與7,代表總共有3種玉米種子及每一種玉米種子的屬性特點共有7個。在建立BP神經網絡的過程中,本文將通過使用newff()函數,隱含層節點傳遞函數選用正切S型傳遞函數,而輸出層節點傳遞函數則選擇使用purelin這一線型傳遞函數。訓練函數則選用Levenberg Marquardt當中的BP算法訓練函數,在完成網絡參數的逐一設置之后,分別運用train()函數和sim()函數進行BP神經網絡的訓練和仿真測試[4]。在經過5次重復測試后得到實驗結果,如表2所示。

表2 BP神經網絡算法下的實驗結果
在對實驗結果進行深入統計分析之后,可以準確得知使用BP神經網絡算法對數據集進行分類,其平均準確率和平均建模時間分別為83.771%、1.8322s,方差則為0.4%。
(3) ELM神經網絡算法
通過利用load()函數將所有原始數據導入在專門建立的一個名為種子的文件中,完成原始數據的存儲工作。考慮到需要保障數據的一般性,只隨機抽取80%的數據集,也就是總共抽取160條記錄,在將其整理成訓練集統計模型之后,將剩余記錄整理成測試集[5]。經過MATLAB帶有的mapminmax()函數歸一化處理訓練數據后可以得到3個輸出神經元和7個輸入神經元,分別表示種子的類型和屬性特征數量。在進行ELM神經網絡的建立以及訓練過程中,本文將使用elmtrain()函數,從函數中提取出sig并將其設定成激勵函數。完成網絡參數的逐一設定之后通過使用elmpredict()函數仿真測試創建的ELM神經網絡即可。而為了能夠使得試驗更加真實可靠,在條件允許的情況下需要對其進行多次重復測試。本次實驗總共進行了5次重復測試,最終實驗結果,如表3所示。

表3 ELM神經網絡算法下的實驗結果
通過對實驗結果進行進一步統計分析,可以得知在5次重復測試實驗中,使用ELM神經網絡算法的平均準確率為96.341%,建模時間的平均值則為0.2018s,方差則為0.1%。
從現有數據庫中本文通過選擇與我國通化葡萄酒有關的原始數據,數據集中共有相關記錄180條,每一條記錄當中都擁有包括酒精、色調等在內的10個屬性特征,在實驗中隨機選擇數據集一半的樣本記錄作為訓練集,將剩余樣本記錄整理為測試集。
(1) SVM神經網絡算法
在利用importdata()函數將原始數據全部導入專門的文件中進行存儲,為有效保障數據的一般性,只隨機抽取80%的數據集,總共抽取160條記錄,再將其整理成訓練集統計模型之后,將剩余20%的記錄整理成測試集。經過歸一化處理訓練數據后,本文將直接使用svmtrain()創建SVM神經網絡,同時對其進行訓練。在完成網絡參數的設置之后直接運行程序即可完成實驗[6]。本次實驗總共進行了5次重復測試,最終實驗結果,如表4所示。
通過對實驗結果進行進一步分析,我們可以準確了解到在SVM神經網絡算法下,平均準確率和建模時間分別為98.427%以及0.031 3 s,方差則為3.87E-5。

表4 SVM神經網絡算法下的實驗結果
(2) BP神經網絡算法
與前文提及的玉米種子集分類基本相同,所有原始數據首先需要利用importdata()函數,將其統一導入和存儲在專門的文件當中。并隨機從數據集當中抽取一般作為訓練集統計模型,以有效保障數據集的一般性。剩余數據記錄將被作為測試集。在歸一化處理訓練數據之后,將分別獲得3個輸出神經元和十個輸入神經元,代表總共有3種類型各異的通化葡萄酒,分別用1、2、3進行表示,而每一個種葡萄酒均擁有10個屬性特征[7]。在建立BP神經網絡的過程中,本文將通過使用newff()函數,隱含層節點傳遞函數選用正切S型傳遞函數,而輸出層節點傳遞函數則選擇使用purelin這一線型傳遞函數。訓練函數則選用Levenberg Marquardt當中的BP算法訓練函數,在完成網絡參數的逐一設置之后,分別運用train()函數和sim()函數進行BP神經網絡的訓練和仿真測試。在經過5次重復測試后得到實驗結果,如表5所示。
在對實驗結果進行深入統計分析之后,可以準確得知使用BP神經網絡算法對數據集進行分類,其平均準確率和平均建模時間分別為84.047%、0.4577s,方差則為0.19%。
(3) ELM神經網絡算法
在歸一化處理訓練數據后,本文將使用elmtrain()函數,進行ELM神經網絡的建立以及訓練[8]。通過從函數中提取出sig并將其設定成激勵函數并完成網絡參數的逐一設定,隨后使用elmpredict()函數仿真測試創建的ELM神經網絡即可。通過反復5次進行實驗測試之后,得到了實驗結果,如表6所示。

表5 BP神經網絡算法下的實驗結果

表6 ELM神經網絡算法下的實驗結果
通過對實驗結果進行進一步統計分析,可以得知在5次重復測試實驗中,使用ELM神經網絡算法對紅酒集進行分類之后,平均準確率為94.831%,建模所需平均時間值則為0.007 4 s,方差則為0.01%。
在對玉米種子集進行分類的實驗當中,使用SVM神經網絡算法、BP神經網絡算法、ELM神經網絡算法的平均建模時間則分別為0.289 2 s、1.832 2 s以及0.201 8 s。具體情況如表7所示。

表7 案例一3種算法比較
由此我們可以看出,ELM神經網絡算法分類玉米種子集的效果最優,不僅正確率最高且花費的建模時間也最短,而SVM神經網絡算法次之,BP神經網絡算法的建模時間最長[9]。
在對紅酒集進行分類的實驗當中,使用SVM神經網絡算法、BP神經網絡算法、ELM神經網絡算法的平均準確率分別為98.427%、84.047%以及94.831%。而使用3種神經網絡算法的平均建模時間則分別為0.031 3 s、0.457 7 s以及0.007 4 s,具體情況如表8所示。

表8 案例二3種算法比較
在對紅酒集進行分類當中,總體來看仍然是ELM神經網絡算法分類的效果最優[10],雖然其正確率要略低于SVM神經網絡算法,但其建模時間比較短且本身也具有一定的正確率。SVM神經網絡算法次之,BP神經網絡算法的建模時間則最長。
本文通過對基于神經網絡下的不同數據挖掘分類算法進行分析,在以玉米種子集和紅酒集為例進行實驗之后,根據實驗結果可知ELM神經網絡算法擁有較強的建模性能和較高的正確率。SVM神經網絡算法的建模時間也相對較短,同樣具有較高的正確率,而BP神經網絡算法的正確率最低,且需要花費較長的建模時間。整體來看SVM神經網絡算法和ELM神經網絡算法“旗鼓相當”,但由于后者使用的隱含層節點更少,因此其整體性能更優,在數據挖掘分類當中通過靈活運用ELM神經網絡算法,可以獲得良好的分類效果。