楊小龍
(福州軟件職業(yè)技術(shù)學院智能產(chǎn)業(yè)學院 福建 福州 350211)
在現(xiàn)代互聯(lián)網(wǎng)技術(shù)不斷發(fā)展與智能化水平越來越高的背景下,物聯(lián)網(wǎng)技術(shù)與人工智能技術(shù)得到了進一步創(chuàng)新與發(fā)展,許多智能化設(shè)備、移動終端等獲得了廣泛的運用,無時無刻不在產(chǎn)生大量的數(shù)據(jù)信息[1]。 云計算技術(shù)依托虛擬化技術(shù)、分布式計算技術(shù)以及數(shù)據(jù)存儲技術(shù)等多種方式,實現(xiàn)對不同計算資源的科學分配與使用,從而有效解決大規(guī)模數(shù)據(jù)處理問題。 K?means 算法是當下應用較為普遍的聚類算法,廣泛運用在數(shù)據(jù)挖掘與分析等行業(yè)。 依托云計算技術(shù),K?means 算法能夠有效發(fā)揮分布式計算與存儲資源的優(yōu)勢,進一步縮短算法的處理時間[2]。 本文從云計算視角出發(fā)探究數(shù)據(jù)挖掘算法,以期研究成果能夠為相關(guān)研究工作者提供幫助。
從20 世紀60 年代開始,數(shù)據(jù)挖掘開始慢慢進入人們視線中,屬于一種級別較高的計算機數(shù)據(jù)處理算法,根本目的是從海量的、充滿噪聲的、模糊的以及隨機的數(shù)據(jù)信息中挖掘出需要的、有較高價值的數(shù)據(jù)信息的過程性算法[3]。 在實際進行數(shù)據(jù)挖掘過程中,重點涵蓋了五個流程,分別為云端大規(guī)模數(shù)據(jù)信息的獲取、數(shù)據(jù)信息初步處理、數(shù)據(jù)挖掘、提煉結(jié)果科學評估和獲得有價值信息。 以往的數(shù)據(jù)挖掘工作一般是建立在十分煩瑣的數(shù)學邏輯運算模型基礎(chǔ)之上,需要相關(guān)工作者投入較多時間與精力進行計算以后,才可以獲得數(shù)據(jù)挖掘的準確結(jié)果,從而導致傳統(tǒng)數(shù)據(jù)挖掘不僅具有很高的專業(yè)性,同時復雜程度也較高。 隨著云計算技術(shù)的不斷發(fā)展,以云計算為載體打造相應平臺能夠高效率地、不間斷地進行分布式并行數(shù)據(jù)挖掘工作,同時因其擁有數(shù)據(jù)挖掘技術(shù)要求不高、系統(tǒng)智能分配計算等優(yōu)勢,使得數(shù)據(jù)挖掘工作速度得到顯著改善[4]。
在較長一段時間內(nèi),國內(nèi)外學者都沒有針對云計算給出統(tǒng)一標準的定義,在眾多解釋當中最具影響力的還是美國國家標準技術(shù)研究院提出的概念,即依托互聯(lián)網(wǎng)獲取共享計算資源,同時基于最小的管理成本與最準確的計算方法得到結(jié)果的全新IT 運算方式[5]。 我國許多學者也提出了自身的看法與建議,如一些學者將云計算理解為一種計算效率高的分布式系統(tǒng),將Web 2.0 技術(shù)作為重中之重,依托抽象虛擬的互聯(lián)網(wǎng)資源,為計算機使用者帶來計算機存儲與計算服務(wù)等。 2014 年,中國電子技術(shù)標準化研究院在《云計算標準化白皮書》中指出:“隨著云計算的不斷發(fā)展,業(yè)界對云計算的定義認識已趨于統(tǒng)一,目前云計算的定義以ISO/IEC JTC1 和ITU?T 組成的聯(lián)合工作組制定的國際標準 ISO/IEC17788 《 云計算詞匯與概述(Information technology–Cloud Computing–Overview and vocabulary)DIS 版的定義為主?!痹谠摌藴手袑⒃朴嬎愣x為一種可伸縮、彈性、共享的物理和虛擬資源池以按需自服務(wù)的方式供應和管理,并提供網(wǎng)絡(luò)訪問的模式。 現(xiàn)階段,針對云計算支撐技術(shù)進行研究的人員越來越多,逐漸朝向多樣化方向發(fā)展, 其中以Hadoop、 HDFS 以及MapReduce 編程模型為重點,依托配套設(shè)施服務(wù)、平臺服務(wù)以及軟件服務(wù)等達成計算功能[6]。
Hadoop 屬于開源分布系統(tǒng)中的一種,建立在GFS 模型以及MapReduce 模型基礎(chǔ)之上,重點涵蓋了分布式文件系統(tǒng)以及分布式計算架構(gòu)MapReduce、數(shù)據(jù)倉庫Hive 以及數(shù)據(jù)庫HBase 等部分,被廣泛使用在海量數(shù)據(jù)信息處理與數(shù)據(jù)存儲等方面,擁有較強的虛擬性、拓展性以及穩(wěn)定性,可以基于集群節(jié)點的延伸來完成大量數(shù)據(jù)集的高效處理[7]。 一般分布式文件系統(tǒng)的數(shù)據(jù)放置在Hadoop 系統(tǒng)的底層位置,實現(xiàn)的主要功能是完成Client 用戶機主從節(jié)點的文件儲存,同時在分布式計算架構(gòu)MapReduce 程序運行中提供相應的數(shù)據(jù)集。 此外,分布式文件系統(tǒng)還具有良好的兼容性。 HBase 數(shù)據(jù)庫屬于一種列存儲模型,重點涵蓋了Region 表、Client API 端口等,能夠?qū)㈡I/值的不同數(shù)據(jù)類型劃分到相應的RegionServer 組件中,最后完成對數(shù)據(jù)信息的處理與儲存。
分布式計算架構(gòu)MapReduce 模型以HBase 數(shù)據(jù)庫為基礎(chǔ),是一種包含海量數(shù)據(jù)的數(shù)據(jù)集并行運算模型,重點負責將導入的各種等待運算的數(shù)據(jù)信息拆分為多個小數(shù)據(jù)段,之后將不同的數(shù)據(jù)段劃分到相應的Map 和Reduce 任務(wù)當中,緊接著通過二元組鍵/值對各個任務(wù)函數(shù)進行計算,同時促使鍵關(guān)鍵值、Value 數(shù)值和Reduce 函數(shù)緊密結(jié)合到一起,打造小規(guī)模的Value 集,最后導出相應的數(shù)據(jù)信息。
在分布式計算架構(gòu)MapReduce 模型當中,Pig Latin、Sqoop 以及Hive 數(shù)據(jù)庫等相關(guān)數(shù)據(jù)分析的部件均位于模型上部,從而實現(xiàn)云計算平臺的數(shù)據(jù)信息導入、運用以及導出。 在此過程中,不同數(shù)據(jù)分析部件發(fā)揮的功能各不相同。 具體來說,Hive 實現(xiàn)的主要功能是分布式系統(tǒng)結(jié)構(gòu)Hadoop 的數(shù)據(jù)收集與轉(zhuǎn)化等,能夠使SQL 信息以及SQL查詢指令等變化成MapReduce,之后再運行相關(guān)程序;Pig Latin 實現(xiàn)的主要功能是對大規(guī)模數(shù)據(jù)信息并行計算進行程序編寫,同時提供相應的操作端口;Sqoop 實現(xiàn)的主要功能是完成MySQL 數(shù)據(jù)庫、Oracle 數(shù)據(jù)庫等中信息的輸入與輸出工作,能夠完成多個數(shù)據(jù)庫中HDFS 數(shù)據(jù)信息的發(fā)送與接收。
在處理云計算平臺中大規(guī)模異構(gòu)數(shù)據(jù)信息時,選取建立在Hadoop 分布式系統(tǒng)架構(gòu)基礎(chǔ)之上的K?means 數(shù)據(jù)挖掘算法,實現(xiàn)對同一類型訪問數(shù)據(jù)的劃分,同時給出各個樣本參數(shù)到聚類中心K 的長度,設(shè)定為參數(shù)粒子的最高適應度值Gbest,依托對不同聚類數(shù)組進行迭代處理,使得獲取到的所有參數(shù)粒子的Gbest 位置均為最佳位置。 在實際進行算法執(zhí)行過程中,一般包含以下幾部分。
第一,對將要處理的各個聚類數(shù)據(jù)集X=(x1,x2,…,xn)T進行界定,公式中xn指云計算平臺中眾多數(shù)據(jù)信息的第n個,包含大量數(shù)據(jù)點構(gòu)成的n維數(shù)據(jù)集。 公式如式(1)所示。
第三,依托極大似然評估創(chuàng)設(shè)目標函數(shù),獲得指定數(shù)據(jù)簇中數(shù)據(jù)目標的偏差平方和。 正常來說,P表示為數(shù)據(jù)目標的具體空間方位,mi表示wi數(shù)據(jù)簇中的數(shù)據(jù)參數(shù)均值,這時能夠給出K?means 數(shù)據(jù)挖掘算法的評估標準如式(2)所示。
K?means 數(shù)據(jù)挖掘算法能夠?qū)崿F(xiàn)對多種類型數(shù)據(jù)信息的分組聚類核算,計算過程較為簡便,同時有著較高的空間復雜性。 在實際使用該數(shù)據(jù)挖掘算法進行大量數(shù)據(jù)挖掘時,也存在較多問題,具體如下:
第一,K?means 數(shù)據(jù)挖掘算法是將導入數(shù)據(jù)的平均值當成初始聚類關(guān)鍵點,在這種情況下可能造成一些孤立點被極值所限制,導致最終獲得的聚類結(jié)果精準性較低。
第二,該數(shù)據(jù)挖掘算法當中規(guī)劃的初始聚類中心K是基于不確定方式進行選擇的,從而使得結(jié)果具有較強的隨意性與不穩(wěn)定性。
第三,K?means 數(shù)據(jù)挖掘算法當中規(guī)劃的數(shù)據(jù)聚類數(shù)量為K,只能夠滿足規(guī)模不大的數(shù)據(jù)信息聚類研究。 當數(shù)據(jù)信息規(guī)模變大,聚類運算工作量會越來越大,從而導致K?means 算法的數(shù)據(jù)相似度計算速度變慢、并行計算任務(wù)加重,最終獲得的聚類實驗分析結(jié)果的準確性也不高。
從上文可知,K?means 數(shù)據(jù)挖掘算法在數(shù)據(jù)信息收集、初始聚類中心確定以及數(shù)據(jù)聚類數(shù)量等部分存在一定的問題。 為了進一步提高K?means 數(shù)據(jù)挖掘算法的性能與準確性,針對現(xiàn)有不足進行優(yōu)化,從而不斷提高數(shù)據(jù)挖掘結(jié)果的準確性與可靠性。
在確定不同數(shù)據(jù)點和初始聚類中心點的間距時,需要建立在兩個非常相似的樣本值不會出現(xiàn)在相同數(shù)據(jù)簇的理念基礎(chǔ)之上,對數(shù)據(jù)簇收集范疇、聚類中心點以及數(shù)據(jù)分布情況等進行深入研究。
第一,對數(shù)據(jù)簇收集范疇進行確定時,需要對兩個方面進行定義。 首先,選取云計算平臺中的某個點P,將P點看作是空間區(qū)域的中心,半徑值為r,形成的區(qū)間是P的鄰域;其次,云計算平臺中的某個點P,半徑值為r的區(qū)間內(nèi)包含的數(shù)據(jù)點數(shù)量,看成是P的數(shù)據(jù)分布密度。
第二,將云計算平臺中包含的各個數(shù)據(jù)采集樣本,傳輸?shù)紺lient 用戶機主從執(zhí)行節(jié)點上。 再通過相應執(zhí)行節(jié)點來引入Map 函數(shù),獲得多種數(shù)據(jù)信息樣本的待選點。然后依托Reduce 函數(shù)對每個數(shù)據(jù)待選點進行分析,得到導出鍵值對。 結(jié)合上述兩個定義,進一步明確初始聚類的待選中心點。
第三,構(gòu)建SampleChange 變化函數(shù),對各項數(shù)據(jù)集進行初步分析與處理之后再傳輸?shù)終?means 進行聚類。 通過這種方式可以很好地屏蔽孤立點與噪聲點。
第四,構(gòu)建SampleMap 函數(shù)以及SampleReduce 函數(shù),依托Map 函數(shù)的操作鍵值<key,value>(key 表示現(xiàn)階段數(shù)據(jù)行和初始數(shù)據(jù)行兩者的差,value 表示執(zhí)行節(jié)點坐標參數(shù)),對數(shù)據(jù)點x 和聚類待選中心點存在的數(shù)值差進行核算。 當獲得的結(jié)果超過r,這時將此數(shù)據(jù)點當成新聚類待選中心點, 并導出新待選點的鍵值。 此外, 依托SampleReduce 函數(shù)對<key,value>的數(shù)據(jù)分布情況進行分析與運算,并將獲得的結(jié)果和規(guī)劃的數(shù)據(jù)密度值進行比對。 如果小于0,便需要拋棄這個點;反之如果大于0,需要用該點來替換原有的聚類待選中心點,并設(shè)定為<key’,value’>。 K?means 數(shù)據(jù)挖掘算法優(yōu)化后的實施流程如圖1 所示。
圖1 K?means 數(shù)據(jù)挖掘算法優(yōu)化后的實施流程
為了更好地驗證優(yōu)化后的K?means 數(shù)據(jù)挖掘算法的性能,采用實驗對比的方式探討原有K?means 與優(yōu)化后的K?means 在數(shù)據(jù)挖掘上的差異。 為確保實驗結(jié)果的準確性與可靠性,選用的處理器規(guī)格為Intel(R)Core(TM)i5-4590 CPU @ 3.30 GHz,運行內(nèi)存為12 GB;使用固態(tài)存儲硬盤,內(nèi)存為515 GB;選用的系統(tǒng)為最新的Windows 11,并將MATLAB R2019a 作為開發(fā)環(huán)境;使用C ++以及MATLAB 計算機語言。
從某個互聯(lián)網(wǎng)平臺中獲取經(jīng)濟和醫(yī)療方面的2 000個樣本參數(shù),分別基于優(yōu)化前與優(yōu)化后的K?means 數(shù)據(jù)挖掘算法進行MATLAB 實驗,共計實施8 次。 優(yōu)化后的K?means 數(shù)據(jù)挖掘算法的半徑值r設(shè)為7,參數(shù)分布密度數(shù)值F 為4,所有數(shù)據(jù)點樣本均存在4 類屬性,從而將2 000個數(shù)據(jù)樣本劃分成7 種類型。
分別采用兩種數(shù)據(jù)挖掘算法對數(shù)據(jù)樣本進行初步處理,得到兩者的聚類分析結(jié)果,具體如表1 所示。
表1 不同算法聚類分析結(jié)果
從表1 中可以看出,與未優(yōu)化的K?means 數(shù)據(jù)挖掘算法相比,優(yōu)化后的算法在處理各個數(shù)據(jù)簇樣本時,不管是數(shù)據(jù)收集覆蓋率,還是數(shù)據(jù)中心點確定準確率都更好,同時優(yōu)化的K?means 數(shù)據(jù)挖掘算法在不正確數(shù)據(jù)數(shù)量上要更低。 由此證明,優(yōu)化的K?means 數(shù)據(jù)挖掘算法具有良好的應用效果。
綜上所述,基于云計算背景的數(shù)據(jù)挖掘算法經(jīng)過大量科研人員的不懈努力,已經(jīng)獲得了較多優(yōu)異的研究成果,許多數(shù)據(jù)挖掘算法已經(jīng)被深入使用到科研以及工業(yè)等領(lǐng)域。 隨著數(shù)據(jù)規(guī)模的不斷增長,需求的更加多樣化以及企業(yè)業(yè)務(wù)的更加復雜化,以往的K?means 數(shù)據(jù)挖掘算法顯得較為落后,在數(shù)據(jù)處理效率以及算法性能等方面都不盡如人意,而本次提出的優(yōu)化的K?means 數(shù)據(jù)挖掘算法能夠很好地彌補不足,表現(xiàn)出較高的應用價值。