王黎,呂殿基
(北京經濟管理職業學院 信息學院, 北京 100102)
隨著科學技術的發展與不斷進步,效率高,成本低的大數據局部頻繁項集的挖掘算法愈發重要。近年來形成了巨大規模的非結構化數據和半結構化數據,這些數據被稱為大數據,而如何自動、充分地利用這些大數據,順利地解決大數據中存在的數據龐大、無切入點的問題,成為了目前國內外迫切需要解決的一個難題,而數據挖掘技術也在此時應運而生[1]。
頻繁項集挖掘技術是目前數據挖掘技術的基礎,最初國內外主要采用的關聯規則分析、序列項集、相關性分析等數據挖掘技術,它們都是以頻繁項集挖掘技術作為核心基礎的,而近幾年來,隨著大數據處理引擎Spark的出現,為海量數據的高效處理提供了一個新的解決空間,人們由此擴展研究出的Apriori算法與FP-growth算法是當前數據挖掘技術的主流,也是目前國內外大數據挖掘技術的研究重點,其中Apriori算法是一種挖掘關聯規則的頻繁項集算法[2],其核心思想是通過候選集生成和情節的向下封閉檢測兩個階段來挖掘頻繁項集,而FP-growth算法則是在Apriori算法基礎上提出的,但是從長遠角度來看,這兩種算法依然無法滿足處理當前大數據的需求,因為處理時間過長與內存消耗過大這兩點是Apriori算法與FP-growth算法無法從根本上解決的難題,而且數據量只會變得越來越多,Apriori算法與FP-growth算法也會變得越來越無法支撐大數據挖掘的要求[3]。
本文設計了一種基于Spark框架的大數據局部頻繁項集挖掘算法,該算法將Spark理念規則化變為框架形式,Spark框架是一種很好的替代框架,處理大數據局部信息時有著獨特的優勢,本文在Spark框架原有的基礎上增添了結構變換功能,可以讓其隨著本文設計算法的改動而變化。依次對大數據進行了局部算法篩選、局部算法分析、局部算法挖掘,從根本上降低了挖掘難度與成本投入。
本文設計的基于Spark框架的大數據局部頻繁項集挖掘算法,首先通過Spark框架來完成對大數據局部頻繁項集的最初篩選,該過程中,通過調整面積大小、運行速度等相關指令進行大數據局部頻繁項集中的相關數據挖掘,且Spark框架會根據本文設計的大數據局部頻繁項集挖掘算法中的相關指令而產生相對變化[4]。人為添加的大數據局部頻繁項集篩選要求會轉化為數據組D,而A則為Spark框架中的大數據局部頻繁項集,經過計算后得到的S、V、X則分別為Spark框架所需要改動的面積、運行速度、篩選要求,改動后的Spark框架具體結構應用圖,如圖1所示。

圖1 Spark框架篩選結構
此時Spark框架主要以集成網的形式出現,在該過程中,Spark框架也主要起著過濾大數據局部頻繁項集的作用,其中符合篩選要求的大數據頻繁項集會保存于Spark框架所形成的篩選網上,進入到下一階段的分析當中,而不符合篩選要求的大數據頻繁項集則會被Spark框架釋放[5]。被Spark框架釋放的大數據頻繁項集主要分為兩種:一種為本質上不符合篩選要求,這一類項集會被Spark框架直接交還于大數據整體頻繁項集中,不予以干擾[6]。而另一種則是本質上符合篩選要求卻因某種原因被破壞導致自身并不完整,針對這一類大數據頻繁項集Spark框架會進行標注記錄并給予檢測反饋,方便這些大數據頻繁項集被相關工作者及時發現并處理,減輕大數據整體的壓力負擔[7]。
通過Spark框架對大數據局部頻繁項集篩選結果進行分析。經過篩選后的大數據局部頻繁項集會在Spark框架的儲存空間得到保存[8]。等到這些大數據局部頻繁項集趨于穩定后,Spark框架會應用本文設計的算法來對這些儲存空間中的大數據局部頻繁項集進行重新排版與分析[9]。通過Spark框架篩選后的整體大數據局部頻繁項集,經過Spark框架分支載體的啟動命令單元,完成為Spark框架的分支載體命令,而作為大數據局部頻繁項集類別小組,分別為操作數據類頻繁項集、圖像數據類頻繁項集、隱藏數據類頻繁項集,其中操作數據類頻繁項集、圖像數據類頻繁項集屬于公開類數據頻繁項集,可以直接用于接下來的應用。而隱藏數據類頻繁項集則為加密型數據頻繁項集,需要進行破解才可以投入到接下來的應用當中。
此時,Spark框架的結構會受到分析算法中分支載體的啟動命令,在單元與分支載體完成命令單元后,影響由集成網狀變為分支網狀的結構,既保證了算法分析的正常運行,也為算法挖掘打下了基礎,應用本文基于Spark框架理念所設計的局部頻繁項集分析算法對大數據局部頻繁項集算法分析的具體歸納圖,如圖2所示。

圖2 大數據局部頻繁項集算法分析的流程
在分析出頻繁項集后利用Spark框架挖掘主要目標。將基于Spark框架的大數據局部頻繁項集篩選結果和分析結果與Spark框架結合運用后得到的操作數據類頻繁項集、圖像數據類頻繁項集、隱藏數據類頻繁項集是接下來進行挖掘的主要目標[10]。
操作數據類頻繁項集主要指的是大數據中蘊含指令信息數據或者動作信息數據的一類頻繁項集,而圖像數據類頻繁項集則泛指了大數據中蘊含圖片或者影像的一類頻繁項集[11-12]?;谏鲜霾襟E,對這兩種公開類數據頻繁項集進行大數據局部頻繁項集挖掘,上述分析得到的隱藏數據類頻繁項集屬于加密型數據頻繁項集[13],它的誕生是由于在它投入大數據局部頻繁項集之前曾被有意進行數據加密過,在對該類頻繁項集進行挖掘之前,需要先對該類頻繁項集進行數據破解[14]。本文設計算法中的加密型數據頻繁項集破解算法中的專屬破解單元,可以在不破壞加密型數據頻繁項集自身的基礎上破壞掉其特有的數據加密,進而得到可挖掘的大數據局部頻繁項集。
為了準確評估本文基于Spark框架理念所設計的大數據局部頻繁項集挖掘算法的挖掘效果,設置了相應的實驗環境進行效果檢測,將本文設計算法與傳統的Apriori算法以及FP-growth算法進行對比。
對于大數據局部頻繁項集的復雜性與包容性,需要對實驗環境進行數據篩選,本文為完善實驗操作并且能夠準確比較本文設計算法與Apriori算法以及FP-growth算法的挖掘效果,按照步驟劃分實驗研究操作如下:
(1) 在實驗環境中安置大量的大數據局部頻繁項集以保證能夠保留其復雜性以及包容性的特征,增強本實驗比較效果的說服力,應用本文基于Spark框架理念所設計的局部頻繁項集挖掘算法對大數據局部頻繁項集算法篩選過程,如圖3所示。

圖3 大數據局部頻繁項集算法篩選
(2) 在對大數據局部頻繁項集進行算法分析的過程當中,Spark框架受本文設計算法影響會導致自身結構發生改變,此時Spark框架的具體結構圖,如圖4所示。

圖4 Spark框架分析結構
在該過程中,通過本文設計算法中的公開類數據頻繁項集挖掘算法與Spark框架對公開類數據頻繁項集的具體挖掘概念,如圖5所示。

在完成以上操作后,對設置的大數據局部頻繁項集中的操作數據類頻繁項集、圖像數據類頻繁項集、隱藏數據類頻繁項集進行特有標注,方便最終比較結果的驗證。
(3) 在挖掘的過程中要實時記錄各算法對大數據局部頻繁項集的挖掘效率與時間,合理應用各算法所存在的優勢,綜合評估所有算法的挖掘效果,設置挖掘信息通道及挖掘效果圖,如圖6所示。

(4) 保證實驗的公平性,在對加密型數據頻繁項集進行破解與挖掘的過程中,加密型數據頻繁項集結構的前后對比圖,如圖7所示。

圖7 加密型數據頻繁項集結構的前后對比圖
在此實驗中,為了能夠進一步提高實驗整體的對比效果,需要設置一定的實驗參數,如表1所示。

表1 實驗參數
根據上述實驗參數可以得到本文設計算法與傳統的Apriori算法以及FP-growth算法對大數據局部頻繁項集挖掘的整體成本投入圖以及挖掘效率對比圖,如圖8所示。

圖8 對大數據局部頻繁項集挖掘的整體成本投入
根據圖8可以看出,在對相同的大數據局部頻繁項集進行完全挖掘時,傳統的FP-growth算法所需要投入的整體成本最高,傳統的Apriori算法所需要投入的整體成本次之,而本文設計算法所需要投入的成本最低,如圖9所示。

圖9 對大數據局部頻繁項集挖掘的效率對比圖
根據圖9即對大數據局部頻繁項集挖掘的效率對比圖可以看出,在相同的時間內本文設計算法對數據局部頻繁項集挖掘的效率遠遠高于傳統的Apriori算法以及FP-growth算法。
對上述結果進行歸納與總結可以發現,在對同樣數量的大數據局部頻繁項集進行挖掘的過程中,本文設計算法只需要通過算法的不斷改變來對所設計的Spark框架進行設置,即可完成對大數據局部頻繁項集的整個挖掘過程,而傳統的Apriori算法以及FP-growth算法在挖掘的過程中不但需要Spark的支持,還需要大量的軟件與硬件設備進行支撐才能完成同樣的工作量,因此所投入的整體成本會遠遠高于本文設計算法,而且在挖掘的過程中隨著內存空間的不斷減少,傳統的Apriori算法以及FP-growth算法的挖掘效率也會隨之變慢,而本文設計算法并不會受到內存空間的影響,因此本文設計的基于Spark框架的大數據局部頻繁項集挖掘算法的挖掘效率會遠遠高于傳統的Apriori算法以及FP-growth算法。
綜上所述,本文設計的基于Spark框架的大數據局部頻繁項集挖掘算法能夠更好地完成對大數據局部頻繁項集的挖掘,具有合理的操作條件與途徑,也具有著較強的說服力。
本文為解決傳統算法成本高、效率低等問題,提出基于Spark框架理念所設計的大數據局部頻繁項集挖掘算法,摒棄了傳統算法對軟件與硬件的依賴,通過自身算法的變化,以及Spark框架的合理運用更加高效并準確的完成對大數據局部頻繁項集的挖掘,有效降低了挖掘難度與成本投入,為該領域的發展開辟了一條新的研究路徑,具有十分開闊的研究前景,值得人們進行深入地研究。