徐 強(qiáng),王仕佐
(1. 貴州民族大學(xué),貴州 貴陽(yáng) 550025;2. 貴州大學(xué),貴州 貴陽(yáng) 550025)
在大數(shù)據(jù)技術(shù)與互聯(lián)網(wǎng)技術(shù)快速發(fā)展的背景下,各種類(lèi)型的數(shù)據(jù)呈現(xiàn)出爆炸式的增長(zhǎng)。以往普遍使用的基于Hadoop和關(guān)系數(shù)據(jù)庫(kù)的數(shù)據(jù)關(guān)聯(lián)規(guī)則挖掘方法雖然能夠?qū)崿F(xiàn)數(shù)據(jù)挖掘,但是現(xiàn)有方法普遍存在數(shù)據(jù)挖掘結(jié)果準(zhǔn)確率不高的問(wèn)題,并且由于用戶(hù)對(duì)數(shù)據(jù)需求的不斷提升,導(dǎo)致現(xiàn)有數(shù)據(jù)處理平臺(tái)在為用戶(hù)提供服務(wù)的過(guò)程中對(duì)信息的處理需要花費(fèi)大量時(shí)間[1]。為此需要充分考慮數(shù)據(jù)特點(diǎn)與用戶(hù)需求,設(shè)計(jì)能夠適應(yīng)數(shù)據(jù)發(fā)展特點(diǎn)的,用戶(hù)滿(mǎn)意度高的數(shù)據(jù)關(guān)聯(lián)規(guī)則挖掘方法。
目前,旅游業(yè)已經(jīng)邁入數(shù)字化、智慧化的全新時(shí)代[2]。全域旅游智慧化建設(shè)概念將旅游信息采集與宣傳、系統(tǒng)開(kāi)發(fā)、運(yùn)營(yíng)管理等功能結(jié)為一體[3],以數(shù)字信息化技術(shù)為核心提升區(qū)域旅游業(yè)智慧化水平,為區(qū)域旅游業(yè)的發(fā)展提供了一體化、智慧化、數(shù)字化的發(fā)展方向[4]。在上述背景下,會(huì)產(chǎn)生大量的游客數(shù)據(jù)、景點(diǎn)數(shù)據(jù)以及旅游區(qū)交通大數(shù)據(jù)等,因此,本文以旅游領(lǐng)域的數(shù)據(jù)為對(duì)象,為了解決上述傳統(tǒng)方法存在的問(wèn)題,提出一種基于改進(jìn)Apriori算法的大數(shù)據(jù)關(guān)聯(lián)規(guī)則挖掘方法,以良好的數(shù)據(jù)處理能力完善全域旅游服務(wù)功能。經(jīng)實(shí)驗(yàn)驗(yàn)證,得出本文設(shè)計(jì)方法具有一定的應(yīng)用價(jià)值。
2.1.1 平臺(tái)架構(gòu)設(shè)計(jì)
基于云計(jì)算技術(shù)的數(shù)據(jù)處理平臺(tái)通過(guò)整合、更新地理區(qū)域、區(qū)域旅游等信息,借助開(kāi)放接口體系與多終端門(mén)戶(hù)為用戶(hù)提供旅游數(shù)據(jù)處理服務(wù)。以MVC(Model View Controller)開(kāi)發(fā)模式、B/S架構(gòu)、SQL Server數(shù)據(jù)庫(kù)、分布式文件系統(tǒng)為基礎(chǔ),利用C#、Java Script、HTML以及CSS等不同開(kāi)發(fā)語(yǔ)言進(jìn)行數(shù)據(jù)處理平臺(tái)研發(fā),將數(shù)據(jù)處理平臺(tái)進(jìn)行具體的層次劃分,劃分結(jié)果如圖1所示。
圖1 平臺(tái)整體架構(gòu)設(shè)計(jì)
1)作為基于云計(jì)算技術(shù)的數(shù)據(jù)處理平臺(tái)的基礎(chǔ)工程,基礎(chǔ)設(shè)施層中包含網(wǎng)絡(luò)支撐環(huán)境、數(shù)據(jù)庫(kù)管理系統(tǒng)、服務(wù)器、中間件等用于平臺(tái)基礎(chǔ)建設(shè)的基礎(chǔ)設(shè)施。
2)數(shù)據(jù)信息層的主要功能是匯總?cè)蚍秶鷥?nèi)的地理、景區(qū)、游客、商品、文化等信息,構(gòu)建專(zhuān)題數(shù)據(jù)庫(kù)、共享區(qū)數(shù)據(jù)庫(kù),為旅游大數(shù)據(jù)建設(shè)提供基礎(chǔ)功能的同時(shí),也為業(yè)務(wù)邏輯層與服務(wù)層提供數(shù)據(jù)支持。
3)業(yè)務(wù)邏輯層中主要提供組件服務(wù),以及空間數(shù)據(jù)、數(shù)據(jù)接口和應(yīng)用接口適配器等工具,為服務(wù)層應(yīng)用開(kāi)發(fā)提供基礎(chǔ)。
4)服務(wù)層的主要功能是為游客、全域旅游產(chǎn)業(yè)發(fā)展以及政府監(jiān)管提供信息化服務(wù),其中,包含平臺(tái)向用戶(hù)提供的各種服務(wù),如地圖服務(wù)、虛擬游覽、路徑分析、電子購(gòu)票、數(shù)據(jù)分析等功能模塊。
5)展示層中既包含普遍使用的Web門(mén)戶(hù)網(wǎng)站,同時(shí)考慮移動(dòng)網(wǎng)絡(luò)應(yīng)用的大范圍普及與便利性,還與移動(dòng)客戶(hù)端對(duì)接。
6)用戶(hù)層中包含平臺(tái)的主要使用者,如:游客、旅游景區(qū)、相關(guān)商戶(hù)以及旅游管理部門(mén)等。
2.1.2 平臺(tái)運(yùn)作模式
基于云計(jì)算技術(shù)的數(shù)據(jù)處理平臺(tái)以基礎(chǔ)設(shè)施層和數(shù)據(jù)信息層的數(shù)據(jù)采集與數(shù)據(jù)存儲(chǔ)[5]為基礎(chǔ),利用業(yè)務(wù)邏輯層內(nèi)的數(shù)據(jù)引擎進(jìn)行數(shù)據(jù)清洗[6]、數(shù)據(jù)挖掘和數(shù)據(jù)分析,通過(guò)應(yīng)用接口連接服務(wù)層,通過(guò)展示層向用戶(hù)層提供以數(shù)據(jù)分析結(jié)果為基礎(chǔ)的旅游服務(wù)。其運(yùn)作模式示意圖如圖2所示。
1)數(shù)據(jù)采集:數(shù)據(jù)采集主要是通過(guò)主動(dòng)抓取與被動(dòng)收集的形式,縱向采集旅游行業(yè)內(nèi)旅游景區(qū)、酒店、導(dǎo)游、旅游經(jīng)營(yíng)機(jī)構(gòu)等相關(guān)信息;橫向采集旅游過(guò)程中氣象、交通、通訊、住宿、安全保障等管理與服務(wù)信息;通過(guò)互聯(lián)網(wǎng)采集游客相關(guān)信息,包括游客來(lái)源地、年齡等基礎(chǔ)信息,游客對(duì)旅游景點(diǎn)的評(píng)價(jià)以及游客在景區(qū)內(nèi)的消費(fèi)偏好等。
2)數(shù)據(jù)存儲(chǔ):數(shù)據(jù)存儲(chǔ)可分為關(guān)系數(shù)據(jù)庫(kù)存儲(chǔ)(專(zhuān)題數(shù)據(jù)庫(kù)、共享區(qū)數(shù)據(jù)庫(kù))與分布式大數(shù)據(jù)存儲(chǔ)。后者主要借助Hadoop分布式文件系統(tǒng)對(duì)采集得到的數(shù)據(jù)進(jìn)行及時(shí)存儲(chǔ),然后通過(guò)數(shù)據(jù)引擎分析數(shù)據(jù)采集結(jié)果后,將分析結(jié)果存儲(chǔ)在分布式大數(shù)據(jù)存儲(chǔ)系統(tǒng)或關(guān)系數(shù)據(jù)庫(kù)內(nèi)。用于數(shù)據(jù)展示的旅游數(shù)據(jù)普遍存儲(chǔ)在關(guān)系數(shù)據(jù)庫(kù)內(nèi),有效緩解訪(fǎng)問(wèn)延遲導(dǎo)致的效率問(wèn)題。
3)數(shù)據(jù)引擎主要由三部分組成,分別是數(shù)據(jù)清洗、數(shù)據(jù)挖掘和數(shù)據(jù)分析。數(shù)據(jù)清洗的主要作用是針對(duì)采集的原始數(shù)據(jù)實(shí)施降噪、標(biāo)準(zhǔn)化處理;數(shù)據(jù)挖掘利用基于云計(jì)算的Apriori數(shù)據(jù)挖掘算法深層次挖掘清洗后的旅游數(shù)據(jù);結(jié)合旅游業(yè)務(wù)特點(diǎn),分析數(shù)據(jù),獲取不同維度、不同來(lái)源的旅游數(shù)據(jù)統(tǒng)計(jì)分析結(jié)果。
4)應(yīng)用接口:應(yīng)用接口的主要功能是通過(guò)HTTP/HTTPS協(xié)議,利用XML標(biāo)準(zhǔn)數(shù)據(jù)格式進(jìn)行平臺(tái)各層間的數(shù)據(jù)交換,查詢(xún)維度有差異的存儲(chǔ)數(shù)據(jù)。
5)數(shù)據(jù)展示:數(shù)據(jù)展示即通過(guò)展示層向用戶(hù)層展示旅游數(shù)據(jù)分析結(jié)果,然后基于旅游數(shù)據(jù)分析結(jié)果提供各項(xiàng)服務(wù)。
作為數(shù)據(jù)挖掘領(lǐng)域內(nèi)確定頻繁項(xiàng)集的代表性算法,Apriori數(shù)據(jù)挖掘算法通過(guò)對(duì)數(shù)據(jù)集逐層迭代搜索的方式實(shí)現(xiàn)數(shù)據(jù)挖掘功能[7]。Apriori數(shù)據(jù)挖掘算法實(shí)現(xiàn)過(guò)程如下:
用Lk表示頻繁項(xiàng)集,為確定Lk,需連接自身與全部的頻繁項(xiàng)集得到候選項(xiàng)集Ck。假設(shè)Lk內(nèi)包含隨機(jī)項(xiàng)Im、In、Ii,Ii的第j項(xiàng)用Ii[j]表示。在利用字母順序排列事務(wù)集D與全部項(xiàng)集內(nèi)項(xiàng)的條件下,(k-1)項(xiàng)集的隨機(jī)項(xiàng)Ii滿(mǎn)足Ii[1] (1) 通過(guò)Im、In連接可以得到 {Im[1],Im[2],…,Im[k-1],In[k-1]} (2) 作為L(zhǎng)k的超集,Ck中的項(xiàng)并非全部為頻繁項(xiàng)。掃描事務(wù)集,確定Ck內(nèi)各候選項(xiàng)出現(xiàn)的頻率,將其同最小支持度閾值比較,判斷該候選項(xiàng)是否為頻繁項(xiàng),根據(jù)判斷結(jié)果,剔除Ck中不頻繁的候選項(xiàng),最后形成最終的頻繁項(xiàng)集,以該集合為基礎(chǔ)形成一定的關(guān)聯(lián)規(guī)則,該關(guān)聯(lián)規(guī)則需要滿(mǎn)足最小置信度閾值[8]。 由于Apriori算法在面向大量數(shù)據(jù)進(jìn)行迭代搜索時(shí),會(huì)形成數(shù)量龐大的頻繁項(xiàng)集[9],因此,會(huì)消耗大量的網(wǎng)絡(luò)空間,且由于過(guò)程復(fù)雜,導(dǎo)致處理時(shí)間較長(zhǎng),使該算法的應(yīng)用性受到一定程度的限制[10]。根據(jù)云計(jì)算技術(shù)的并行執(zhí)行特性,通過(guò)Map Reduce編程模型[11]優(yōu)化Apriori數(shù)據(jù)挖掘算法,能夠有效改善Apriori算法的應(yīng)用限制。圖3所示為通過(guò)Map Reduce編程模型優(yōu)化Apriori數(shù)據(jù)挖掘算法生成頻繁項(xiàng)的過(guò)程。 圖3 Map Reduce優(yōu)化Apriori算法生成頻繁項(xiàng)流程 具體優(yōu)化步驟如下: 1)利用Input Format劃分D,將得到的N個(gè)格式為(TID,list)的數(shù)據(jù)塊分配至M個(gè)節(jié)點(diǎn)獨(dú)立運(yùn)算,TID和list分別表示事務(wù)標(biāo)識(shí)符和對(duì)應(yīng)的項(xiàng)目。 3)在各節(jié)點(diǎn)上運(yùn)行Combiner程序,在本地合并(Im,local_supp),并通過(guò)Hash程序配置r個(gè)不同的分區(qū),分別分配給Slave節(jié)點(diǎn)運(yùn)行Reduce程序,由此確定各數(shù)據(jù)塊一致候選項(xiàng)集的支持度之和,即全局支持度。 5)持續(xù)迭代以上過(guò)程至算法結(jié)束。 得到Lk后,以行為單位將其中的數(shù)據(jù)劃分為若干個(gè)數(shù)據(jù)塊,生成鍵值對(duì)(line,li),line和li分別表示行偏移量和該行頻繁項(xiàng)集內(nèi)的項(xiàng)。利用Map程序掃描(line,li),基于相關(guān)函數(shù)確定各頻繁項(xiàng)集對(duì)應(yīng)的關(guān)聯(lián)規(guī)則,利用Reduce函數(shù)規(guī)約Map程序輸出的關(guān)聯(lián)規(guī)則,在HDFS內(nèi)存儲(chǔ)關(guān)聯(lián)規(guī)則。對(duì)比關(guān)聯(lián)規(guī)則置信度、興趣度和設(shè)定閾值,由此確定最終的關(guān)聯(lián)規(guī)則,結(jié)合平臺(tái)中各個(gè)功能層的作用,實(shí)現(xiàn)基于改進(jìn)Apriori算法的大數(shù)據(jù)關(guān)聯(lián)規(guī)則挖掘方法設(shè)計(jì)。 為了驗(yàn)證本文提出的基于改進(jìn)Apriori算法的大數(shù)據(jù)關(guān)聯(lián)規(guī)則挖掘方法的有效性,進(jìn)行仿真驗(yàn)證。實(shí)驗(yàn)數(shù)據(jù)來(lái)自中國(guó)旅游與經(jīng)濟(jì)社會(huì)發(fā)展統(tǒng)計(jì)數(shù)據(jù)庫(kù),在該數(shù)據(jù)庫(kù)中抽取不同時(shí)段、不同旅游區(qū)域的數(shù)據(jù),共計(jì)8512條,為了保證實(shí)驗(yàn)結(jié)果的準(zhǔn)確性,采用Matlab仿真軟件對(duì)實(shí)驗(yàn)數(shù)據(jù)進(jìn)行處理。 以數(shù)據(jù)關(guān)聯(lián)規(guī)則挖掘結(jié)果準(zhǔn)確率為實(shí)驗(yàn)指標(biāo),圖4所示為不同并發(fā)人數(shù)條件下,基于Hadoop、關(guān)系數(shù)據(jù)庫(kù)和改進(jìn)Apriori算法的大數(shù)據(jù)關(guān)聯(lián)規(guī)則挖掘方法的對(duì)比結(jié)果。 圖4 數(shù)據(jù)關(guān)聯(lián)規(guī)則挖掘結(jié)果準(zhǔn)確率 由圖4可知,本文方法的數(shù)據(jù)關(guān)聯(lián)規(guī)則挖掘結(jié)果準(zhǔn)確率始終高于基于Hadoop、關(guān)系數(shù)據(jù)庫(kù)的數(shù)據(jù)關(guān)聯(lián)規(guī)則挖掘方法,本文方法的挖掘結(jié)果準(zhǔn)確率最高值達(dá)到了95%,由此可知本文方法對(duì)旅游數(shù)據(jù)的關(guān)聯(lián)規(guī)則進(jìn)行挖掘時(shí),得到的挖掘結(jié)果更加可靠。 在數(shù)據(jù)挖掘方法設(shè)計(jì)中,本文設(shè)計(jì)了一個(gè)數(shù)據(jù)處理平臺(tái),該平臺(tái)以云計(jì)算技術(shù)為核心,因此,在測(cè)試過(guò)程中對(duì)本文設(shè)計(jì)平臺(tái)的性能進(jìn)行測(cè)試極其關(guān)鍵。為驗(yàn)證本文設(shè)計(jì)平臺(tái)在響應(yīng)時(shí)間方面的優(yōu)勢(shì),在相同實(shí)驗(yàn)環(huán)境下,測(cè)試本文方法和對(duì)比方法的響應(yīng)時(shí)間,結(jié)果如圖5所示。 圖5 響應(yīng)時(shí)間對(duì)比 由圖5可得,在相同實(shí)驗(yàn)環(huán)境下,基于Hadoop的數(shù)據(jù)挖掘方法的響應(yīng)時(shí)間控制在1.8s以?xún)?nèi),而基于關(guān)系數(shù)據(jù)庫(kù)的數(shù)據(jù)挖掘方法的響應(yīng)時(shí)間達(dá)到2.0s以上。相比較之下,本文方法的響應(yīng)時(shí)間均未達(dá)到1.0s,由此可知本文平臺(tái)提供的全域旅游服務(wù)功能響應(yīng)時(shí)間與對(duì)比平臺(tái)相比,具有明顯的效率優(yōu)勢(shì)。這是由于本文設(shè)計(jì)平臺(tái)借助業(yè)務(wù)邏輯層內(nèi)的數(shù)據(jù)引擎對(duì)采集的原始數(shù)據(jù)進(jìn)行數(shù)據(jù)清洗、數(shù)據(jù)挖掘與數(shù)據(jù)分析處理,實(shí)現(xiàn)數(shù)據(jù)降噪,提升了數(shù)據(jù)的標(biāo)準(zhǔn)化水平,降低了數(shù)據(jù)處理難度,進(jìn)而提升了平臺(tái)響應(yīng)時(shí)間。 在實(shí)驗(yàn)數(shù)據(jù)庫(kù)中隨機(jī)選取9個(gè)景區(qū),對(duì)比采用本文方法設(shè)計(jì)的平臺(tái)前、后各景區(qū)的游客人數(shù)/年,結(jié)果如圖6所示。 圖6 游覽人數(shù)對(duì)比 由圖6可得,應(yīng)用對(duì)象采用本文設(shè)計(jì)平臺(tái)后,各景區(qū)游覽人數(shù)均有不同幅度的增長(zhǎng),由此說(shuō)明本文平臺(tái)可提升區(qū)域景區(qū)客流量。這是由于本文設(shè)計(jì)平臺(tái)通過(guò)展示層向用戶(hù)層提供以數(shù)據(jù)分析結(jié)果為基礎(chǔ)的旅游服務(wù),提升了服務(wù)質(zhì)量,并為游客的出行提供了便利條件。 綜合分析上述實(shí)驗(yàn)結(jié)果可知,本文方法在響應(yīng)時(shí)間、數(shù)據(jù)挖掘準(zhǔn)確率方面具有較好的應(yīng)用性能,可以有效提升數(shù)據(jù)處理質(zhì)量,進(jìn)而提升旅游服務(wù)質(zhì)量。 本文提出了一種基于改進(jìn)Apriori算法的大數(shù)據(jù)關(guān)聯(lián)規(guī)則挖掘方法,以旅游領(lǐng)域的數(shù)據(jù)為例,利用云計(jì)算技術(shù)處理旅游信息,提升區(qū)域旅游資源服務(wù)能力。經(jīng)過(guò)實(shí)驗(yàn)驗(yàn)證可知,本文方法具有較快的響應(yīng)速度,有效提升了傳統(tǒng)方法的應(yīng)用效果,并且本文方法能夠得到較為準(zhǔn)確的數(shù)據(jù)挖掘結(jié)果,為數(shù)據(jù)使用者提供可靠的數(shù)據(jù)。3 仿真驗(yàn)證
3.1 數(shù)據(jù)關(guān)聯(lián)規(guī)則挖掘結(jié)果準(zhǔn)確率
3.2 數(shù)據(jù)處理平臺(tái)響應(yīng)時(shí)間
3.3 應(yīng)用效果測(cè)試
4 結(jié)束語(yǔ)