李 梅 劉 銘 黃彬彬
(1.四川華新現(xiàn)代職業(yè)學(xué)院,四川 成都 610107;2.成都市鐵路中學(xué)校,四川 成都 610081)
隨著科學(xué)技術(shù)的進(jìn)步,數(shù)據(jù)呈爆發(fā)性增長(zhǎng),形成了巨大的數(shù)據(jù)流,導(dǎo)致數(shù)據(jù)處理的規(guī)模逐漸擴(kuò)大,為企業(yè)數(shù)據(jù)處理帶來(lái)了一定的難度。尤其是電商企業(yè)在實(shí)際發(fā)展建設(shè)的過(guò)程中會(huì)更依賴數(shù)據(jù)資源,企業(yè)在業(yè)務(wù)活動(dòng)的過(guò)程中會(huì)產(chǎn)生大量的數(shù)據(jù),為進(jìn)一步了解消費(fèi)者的購(gòu)買行為,需要進(jìn)一步挖掘相關(guān)數(shù)據(jù)內(nèi)容,以此推動(dòng)電商企業(yè)的發(fā)展。因此,在Hadoop框架的支持下,有效應(yīng)用數(shù)據(jù)挖掘技術(shù)已成為重點(diǎn)研究?jī)?nèi)容。
Hadoop是目前應(yīng)用較為廣泛的一種編程開源框架,其在實(shí)際運(yùn)用的過(guò)程中具有分布式的特點(diǎn),在框架編程過(guò)程中主要應(yīng)用Java語(yǔ)言。Hadoop框架示意如圖1所示,在運(yùn)行的過(guò)程中為集群式處理提供了強(qiáng)有力的支持,不僅可以在分布式的環(huán)境內(nèi)處理大量的數(shù)據(jù)內(nèi)容,對(duì)數(shù)據(jù)進(jìn)行儲(chǔ)存,還可以為多臺(tái)計(jì)算機(jī)提供擴(kuò)展支持,提供本地計(jì)算和儲(chǔ)存服務(wù)。對(duì)Hadoop框架來(lái)說(shuō),Map Reduce計(jì)算模型是其中最重要的組成部分,也是實(shí)現(xiàn)云計(jì)算的基礎(chǔ)內(nèi)容,在實(shí)際應(yīng)用的過(guò)程中,整體流程比較簡(jiǎn)單,編程模式也更簡(jiǎn)化。Map Reduce計(jì)算模型在計(jì)算過(guò)程中主要利用分布式運(yùn)算技術(shù),對(duì)某一類問(wèn)題進(jìn)行解決和計(jì)算,從綜合的角度看,可以將其看成一種開發(fā)模型,為Hadoop提供服務(wù)。
圖1 Hadoop系統(tǒng)框架示意圖
從綜合角度看,可以將數(shù)據(jù)挖掘技術(shù)的應(yīng)用分為以下5個(gè)步驟。1)需要陳述問(wèn)題,闡明假設(shè)。在實(shí)際進(jìn)行過(guò)程中,需要了解電商企業(yè)對(duì)數(shù)據(jù)的需求以及本次挖掘的最終目的,相關(guān)工作人員會(huì)對(duì)數(shù)據(jù)間的關(guān)系提出相應(yīng)的假設(shè),以此為中心,選擇更合適的算法并制定科學(xué)有效的數(shù)據(jù)挖掘方案,需要注意保證方案的詳細(xì)性以及全面性。2)數(shù)據(jù)收集。數(shù)據(jù)收集主要為兩種方法。一種是人為干涉,即工作人員按照相應(yīng)的計(jì)劃和標(biāo)準(zhǔn)對(duì)工作流程進(jìn)行控制,以此產(chǎn)生數(shù)據(jù)信息。另一種是避免人員干涉,即工作人員不得對(duì)工作造成影響,使其自然產(chǎn)生數(shù)據(jù)信息。數(shù)據(jù)的產(chǎn)生具有隨機(jī)性的特點(diǎn),例如消費(fèi)者交易記錄、Web爬蟲抓取信息等。在實(shí)際工作過(guò)程中需要將目標(biāo)操作對(duì)象作為核心,在此基礎(chǔ)上選擇與其具有關(guān)聯(lián)性的數(shù)據(jù)集[1]。3)數(shù)據(jù)預(yù)處理。在對(duì)實(shí)際數(shù)據(jù)進(jìn)行挖掘前,計(jì)算機(jī)會(huì)對(duì)大量的數(shù)據(jù)信息內(nèi)容進(jìn)行簡(jiǎn)單處理,篩選不可用信息以及異常數(shù)據(jù)信息,并對(duì)其進(jìn)行相應(yīng)處理。對(duì)電商數(shù)據(jù)信息來(lái)說(shuō),需要對(duì)涉及消費(fèi)者個(gè)人隱私的內(nèi)容進(jìn)行敏感處理,剔除存在錯(cuò)誤或者無(wú)價(jià)值的信息。降低后續(xù)數(shù)據(jù)挖掘的工作量和工作難度。對(duì)缺少的內(nèi)容來(lái)說(shuō),需要進(jìn)行相應(yīng)的補(bǔ)全處理,同時(shí)還需要將不同的數(shù)據(jù)格式轉(zhuǎn)化為同一種格式,為后續(xù)數(shù)據(jù)挖掘提供便利條件。4)數(shù)據(jù)挖掘。數(shù)據(jù)挖掘是整體數(shù)據(jù)挖掘技術(shù)的核心內(nèi)容,在實(shí)際工作過(guò)程中,需要明確挖掘目標(biāo),選擇合適的數(shù)據(jù)挖掘方法,例如聚類算法、關(guān)聯(lián)規(guī)則法、分類法、偏差分析法以及時(shí)間序列預(yù)測(cè)法等,這幾種方法都是現(xiàn)階段較為常用的數(shù)據(jù)挖掘方法,應(yīng)用這些方法不僅可以滿足電商企業(yè)的需求,還可以保證數(shù)據(jù)信息的全面性以及完整性。5)解析模型。完成數(shù)據(jù)挖掘后需要按照最初挖掘目標(biāo)對(duì)其進(jìn)行解析。在實(shí)際工作過(guò)程中,為進(jìn)一步驗(yàn)證挖掘結(jié)果的準(zhǔn)確性,需要對(duì)相關(guān)的角度進(jìn)行驗(yàn)證工作,將有效價(jià)值信息提供給用戶。
2.2.1 數(shù)據(jù)聚類分析
聚類分析和關(guān)聯(lián)規(guī)則挖掘是研究挖掘算法的重要途徑與方法。聚類分析是一種探索性數(shù)據(jù)分析技術(shù),可以便于發(fā)現(xiàn)數(shù)據(jù)中隱藏的模式和結(jié)構(gòu),關(guān)聯(lián)規(guī)則是根據(jù)數(shù)據(jù)尋找數(shù)據(jù)間的關(guān)聯(lián),加強(qiáng)兩者間的聯(lián)系,從而幫助技術(shù)人員更好地了解事物發(fā)展規(guī)律。為構(gòu)建Hadoop電商數(shù)據(jù)挖掘技術(shù),選擇兩種數(shù)據(jù)挖掘技術(shù)進(jìn)行分析,闡述分析算法的同時(shí),為后續(xù)電商系統(tǒng)數(shù)據(jù)挖掘分析做鋪墊[2]。
聚類算法類別多樣,根據(jù)樣本數(shù)據(jù)類型以及應(yīng)用場(chǎng)景等因素選擇算法。按照類別包括劃分、層次、密度等聚類算法。在實(shí)際應(yīng)用過(guò)程中,聚類算法通常是多種算法疊加。其中,劃分聚類是確定簇個(gè)數(shù)K,將樣本集劃分為K個(gè)簇,基于樣本為中心進(jìn)行反復(fù)迭代計(jì)算,根據(jù)初始中心變化確定是否產(chǎn)生最佳聚類結(jié)果。層次聚類算法是基于給定的聚類數(shù)據(jù)集合按照層次分解,因此也被稱為數(shù)據(jù)類算法。將其理解為個(gè)體為類的開始,自上或自下的尋找同類聚合,見異類排除分類。密度聚類根據(jù)密度較高的點(diǎn),將其鏈接,生成簇后確定相鄰密度閾值。網(wǎng)格聚類是將空間量化,形成網(wǎng)絡(luò)結(jié)構(gòu),便于聚類操作。在很多聚類算法中,K-means算法屬于劃分聚類算法的一種,通過(guò)迭代移動(dòng)簇,尋找最佳聚類結(jié)果,該算法具有較好的特性,利用該算法有助于Hadoop電商數(shù)據(jù)挖掘技術(shù)應(yīng)用。
2.2.2 K-means算法
means算法也稱K均值算法,需要確定聚類個(gè)數(shù),隨機(jī)選擇簇中的對(duì)象K作為初始質(zhì)心。將其劃分到其他簇中,經(jīng)過(guò)迭代計(jì)算,更新樣本點(diǎn)。K-means算法計(jì)算需要隨機(jī)選擇樣本集,將其隨機(jī)劃分為K個(gè)簇,將樣本均值作為質(zhì)心。中心為每個(gè)樣本分配簇,計(jì)算分配后簇的樣本均值。重復(fù)上述過(guò)程,直到質(zhì)心不再變化、或準(zhǔn)則函數(shù)收斂。計(jì)算過(guò)程如公式(1)所示。
式中:s(a,ni)為對(duì)象到聚類質(zhì)心的距離,根據(jù)a建立j個(gè)屬性值,nij為質(zhì)心屬性值。
在迭代計(jì)算過(guò)程中,質(zhì)心需要不斷調(diào)整。按照規(guī)則計(jì)算K-means算法數(shù)據(jù)樣本平方誤差總和。K-means算法的實(shí)際算法流程如圖2所示,內(nèi)部反復(fù)循環(huán)計(jì)算,確定K距離樣本點(diǎn)的距離并歸類的過(guò)程就是數(shù)據(jù)挖掘技術(shù)落實(shí)在實(shí)際工作的階段。針對(duì)后期電商數(shù)據(jù)挖掘處理,能夠運(yùn)用傳統(tǒng)K-means算法進(jìn)行計(jì)算,并在算法基礎(chǔ)上優(yōu)化執(zhí)行,提高算法執(zhí)行效率。
圖2 K-means算法聚類算法流程
2.3.1 關(guān)聯(lián)規(guī)則定義
關(guān)聯(lián)規(guī)則挖掘,可以從數(shù)據(jù)集中發(fā)現(xiàn)項(xiàng)與項(xiàng)間的關(guān)系,根據(jù)樣本數(shù)據(jù)查找其他組事件中是否有能關(guān)聯(lián)數(shù)據(jù)的規(guī)則。頻繁項(xiàng)集能夠?qū)?shù)據(jù)進(jìn)行分布式處理,提取數(shù)據(jù)集中的高頻率子項(xiàng)。利用頻繁集構(gòu)建事務(wù)間的關(guān)系,設(shè)置項(xiàng)目集合,根據(jù)每個(gè)元素,給定數(shù)據(jù)集,在算法運(yùn)行過(guò)程中對(duì)頻繁集處理,根據(jù)單個(gè)候選集出現(xiàn)次數(shù)對(duì)相關(guān)相集進(jìn)行處理,滿足用戶需求。
2.3.2 關(guān)聯(lián)規(guī)則算法步驟
關(guān)聯(lián)算法挖掘過(guò)程分為兩個(gè)步驟如圖3所示。通常是尋找頻繁集,設(shè)置min閾值,根據(jù)每個(gè)項(xiàng)集對(duì)比閾值,若大于或等于頻繁項(xiàng)集則無(wú)法形成關(guān)聯(lián)生成關(guān)聯(lián)規(guī)則,需要根據(jù)頻繁集尋找可信度大于最小閾值的關(guān)聯(lián)規(guī)則。在算法步驟中,尋找頻繁項(xiàng)集是關(guān)鍵,關(guān)聯(lián)規(guī)則算法有Apriori算法和FP-Growth。鑒于Apriori算法有更好的擴(kuò)展性,因此優(yōu)先選擇Apriori算法用于關(guān)聯(lián)計(jì)算。
圖3 關(guān)聯(lián)規(guī)則挖掘基本步驟
2.3.3 Apriori算法
Apriori算法是一種基于水平數(shù)據(jù)分布的算法,具體流程如圖4所示。通過(guò)反復(fù)式歸一迭代,從頻繁集中尋找,根據(jù)K項(xiàng)集導(dǎo)出K+1項(xiàng)集,直到找不到為止。實(shí)際應(yīng)用就是根據(jù)購(gòu)買記錄,按照Apriori算法執(zhí)行,選定參數(shù)閾值,當(dāng)認(rèn)定某個(gè)商品閾值頻率高于設(shè)定時(shí),將其作為頻繁項(xiàng)集。根據(jù)數(shù)據(jù)集中的項(xiàng)目在自動(dòng)查找過(guò)程中生成候選集,滿足條件的最小閾值確定為頻繁項(xiàng)集。
圖4 Apriori算法流程圖
設(shè)計(jì)人員在進(jìn)行實(shí)際設(shè)計(jì)的過(guò)程中,需要結(jié)合當(dāng)下電商市場(chǎng)環(huán)境,將Hadoop與算法結(jié)合,構(gòu)建完整的數(shù)據(jù)處理系統(tǒng),具體框架如圖5所示。系統(tǒng)主要部分包括以下階段。第一階段為準(zhǔn)備階段,由平臺(tái)和軟件采集各類商品信息,Hadoop讀取相關(guān)業(yè)務(wù)信息到HDFS中,完成數(shù)據(jù)存儲(chǔ)與預(yù)處理。第二階段是數(shù)據(jù)處理,根據(jù)不同數(shù)據(jù)對(duì)其挖掘分析,實(shí)現(xiàn)并行化處理,建立對(duì)應(yīng)的數(shù)據(jù)分析模型。第三階段根據(jù)數(shù)據(jù)處理結(jié)果轉(zhuǎn)化,將數(shù)據(jù)轉(zhuǎn)化為相應(yīng)格式。第四階段是根據(jù)集群處理,返回前端后呈現(xiàn)不同類別的圖形展示。Hadoop數(shù)據(jù)挖掘技術(shù)結(jié)合了批處理技術(shù)挖掘算法,有較強(qiáng)的實(shí)用性。經(jīng)過(guò)前期分析測(cè)試,驗(yàn)證系統(tǒng)數(shù)據(jù)處理可行。
圖5 系統(tǒng)框架設(shè)計(jì)圖
由于電商類目較多,因此在對(duì)數(shù)據(jù)進(jìn)行挖掘過(guò)程中,可以根據(jù)電商產(chǎn)品選擇門店銷售數(shù)據(jù)庫(kù),根據(jù)數(shù)據(jù)庫(kù)進(jìn)行設(shè)置,分析數(shù)據(jù)來(lái)源。對(duì)周期訂單、預(yù)約訂單等數(shù)據(jù)挖掘,尋找有價(jià)值的潛在信息,幫助企業(yè)管理者科學(xué)決策。數(shù)據(jù)需要經(jīng)過(guò)預(yù)處理,取讀后進(jìn)行挖掘處理。根據(jù)K-means聚類算法分析,對(duì)數(shù)據(jù)進(jìn)行序列文件轉(zhuǎn)換,對(duì)數(shù)據(jù)進(jìn)行深入挖掘,取讀后的數(shù)據(jù)轉(zhuǎn)換格式,方便查找。當(dāng)執(zhí)行K-means算法時(shí),要重視MahoutAPI調(diào)用,采用聚類數(shù)據(jù)轉(zhuǎn)化的方式對(duì)閾值進(jìn)行調(diào)整,避免閾值設(shè)置不合理影響K-means算法執(zhí)行。執(zhí)行后的數(shù)據(jù)能看到聚類分析結(jié)果的具體內(nèi)容,輸出目錄中能清楚看到迭代轉(zhuǎn)換次數(shù)。將其轉(zhuǎn)換成json格式返回前端。使用Apriori進(jìn)行關(guān)聯(lián)分析,設(shè)計(jì)map函數(shù)和reduce函數(shù),分析客戶與購(gòu)買商品間的潛在聯(lián)系。使用程序代碼,選定數(shù)據(jù)集進(jìn)行關(guān)聯(lián),獲得候選集數(shù)據(jù)。將數(shù)據(jù)挖掘內(nèi)容以圖形繪制的表現(xiàn)出來(lái),能直接發(fā)現(xiàn)潛在問(wèn)題。結(jié)合企業(yè)與客戶的實(shí)際需求,讀取數(shù)據(jù)轉(zhuǎn)化分析,將轉(zhuǎn)化后的數(shù)據(jù)存在在HDFS中,使用Web頁(yè)面繪制并加載。
對(duì)K-means算法過(guò)程、公式進(jìn)行分析,能夠看出K-means算法適用于大數(shù)據(jù)集的積累處理,經(jīng)過(guò)K-means算法處理后數(shù)據(jù)更容易理解。該算法有較好的聚類應(yīng)用效果,但是傳統(tǒng)K-means算法存在一定不足,需要更改其單機(jī)運(yùn)行模式,海量數(shù)據(jù)聚類受到單機(jī)限制,質(zhì)心計(jì)算容易出現(xiàn)異常數(shù)據(jù)影響,針對(duì)傳統(tǒng)K-means算法的不足,將其與Hadoop集群融合,強(qiáng)化算法執(zhí)行,加強(qiáng)算法的執(zhí)行效果。
集群內(nèi)需要對(duì)平臺(tái)上的很多數(shù)據(jù)進(jìn)行處理,將數(shù)據(jù)集分成多個(gè)塊,將其存儲(chǔ)后,經(jīng)過(guò)分布式處理,保證函數(shù)能對(duì)每塊進(jìn)行處理。將函數(shù)輸入作為數(shù)據(jù)樣本點(diǎn)和質(zhì)心的距離,根據(jù)距離添加距離最近的簇,輸出更新的簇標(biāo)號(hào)和簇間樣本點(diǎn)。在模型中,為提高算法效率,會(huì)加入函數(shù)提高計(jì)算的準(zhǔn)確性。map()作為輸入,合并相同key值,輸出合并結(jié)果。將計(jì)算結(jié)果輸入,更新簇的質(zhì)心,形成新的質(zhì)心。舊的質(zhì)心根據(jù)距離收斂閾值,判斷聚類是否結(jié)束,反之繼續(xù)中間的循環(huán)操作[3]。
算法庫(kù)中的K-means算法能夠通過(guò)Mappreduce基于架構(gòu)運(yùn)行,不僅能保證K-means算法能夠像普通程序一樣讀寫運(yùn)行,還能保證K-means算法在集群上執(zhí)行,以分布式文件系統(tǒng)上讀寫數(shù)據(jù)。將聚類算法分配到不同機(jī)器上,保證每個(gè)map處理樣本點(diǎn)的一個(gè)數(shù)據(jù)塊。
為提高執(zhí)行效率,經(jīng)過(guò)緩存的質(zhì)心經(jīng)過(guò)一次算法迭代,質(zhì)心就會(huì)更新一次。經(jīng)過(guò)函數(shù)反復(fù)迭代運(yùn)行,在K-means算法執(zhí)行過(guò)程中,通過(guò)map就能夠?qū)崿F(xiàn)數(shù)據(jù)劃分,執(zhí)行順序如圖6所示。K-means算法并行化執(zhí)行是從KMeansDriver類開始,逐步進(jìn)入程序運(yùn)行系統(tǒng)。
圖6 K-means算法并行化過(guò)程
電商平臺(tái)數(shù)據(jù)挖掘后,主要用來(lái)預(yù)測(cè)消費(fèi)者行為、探索市場(chǎng)趨勢(shì)、提高營(yíng)銷效率和制定決策,因此實(shí)現(xiàn)可視化十分重要??梢暬瘓D形有多種類型,需要?jiǎng)?chuàng)建良好的試驗(yàn)環(huán)境才便于更好地輸出數(shù)據(jù)。為更好地驗(yàn)證可視化效果,需要讀取較多數(shù)據(jù)表,硬件環(huán)境、軟件環(huán)境缺一不可。搭建Hadoop集群,從管理者角度和消費(fèi)者角度,對(duì)數(shù)據(jù)處理分析。同等數(shù)據(jù)量下,傳統(tǒng)算法與并行算法的結(jié)果對(duì)比見表1,能夠看出合并算法執(zhí)行化速度更快,加快了數(shù)據(jù)挖掘分析速度。傳統(tǒng)的K-means算法和Hadoop平臺(tái)相結(jié)合,能夠更快速地反饋結(jié)果,以不同視角展示訂單關(guān)聯(lián)圖以及信息,保證及時(shí)對(duì)數(shù)據(jù)進(jìn)行處理和反饋,對(duì)企業(yè)來(lái)說(shuō)體驗(yàn)良好。
表1 K-means算法運(yùn)行時(shí)間(單位:s)
數(shù)據(jù)挖掘技術(shù)的應(yīng)用,不僅是簡(jiǎn)單的整合數(shù)據(jù)信息,還需要對(duì)數(shù)據(jù)信息進(jìn)行處理,探究數(shù)據(jù)間存在的關(guān)系,總結(jié)其中的模式以及規(guī)律并不斷輸出結(jié)果。從表1中可以看出,并行K-means算法提高了數(shù)據(jù)挖掘的效率,為后續(xù)工作節(jié)約了時(shí)間,推動(dòng)整體工作發(fā)展,為電商工作提供了強(qiáng)有力的支持。
綜上所述,目前科學(xué)技術(shù)的不斷進(jìn)步和發(fā)展為電商企業(yè)提供了一定的活力和動(dòng)力。電商企業(yè)在實(shí)際發(fā)展建設(shè)的過(guò)程中,除了需要產(chǎn)品以及店鋪運(yùn)營(yíng)外,還需要大量數(shù)據(jù)信息的支持,在大數(shù)據(jù)時(shí)代下最不缺少的就是數(shù)據(jù)信息,目前數(shù)據(jù)信息的種類繁多。技術(shù)人員在Hadoop結(jié)構(gòu)的支持下積極應(yīng)用電商數(shù)據(jù)挖掘技術(shù),不僅可以保證數(shù)據(jù)信息的完整性以及全面性,還可以對(duì)數(shù)據(jù)信息進(jìn)行相應(yīng)處理,保證數(shù)據(jù)的有效性,避免出現(xiàn)錯(cuò)誤信息或是重復(fù)信息等,為電商企業(yè)的發(fā)展與創(chuàng)新提供支持。