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