R語言改進關(guān)聯(lián)規(guī)則挖掘Apriori在超市銷售數(shù)據(jù)可視化
全文鏈接:https://tecdat.cn/?p=33364
原文出處:拓端數(shù)據(jù)部落公眾號
超市業(yè)已成為商業(yè)領(lǐng)域最具活力的商業(yè)業(yè)態(tài),競爭也變得日益激烈。數(shù)據(jù)挖掘技術(shù)越來越多地服務(wù)于超市營銷戰(zhàn)略,本文在數(shù)據(jù)挖掘的基礎(chǔ)上,深入分析了關(guān)聯(lián)規(guī)則算法,研究算法的基本思想、算法的性質(zhì),并對算法進行詳細的性能分析,比較了Apriori算法和改進Apriori算法。最后,采用R軟件對超市數(shù)據(jù)進行挖掘,為超市營銷提供策略。
同時,關(guān)聯(lián)規(guī)則也成功地應(yīng)用到了電影、圖書、超市購物、制造業(yè)等社會生活的許多方面。
因此,本文為了驗證Apriori算法的可行性,使用了來自超市交易數(shù)據(jù)集,采用了顧客在超市購買的數(shù)據(jù)進行分析,從這些數(shù)據(jù)中找出有價值的規(guī)則,從而為超市提供有價值的營銷策略。
關(guān)聯(lián)規(guī)則
關(guān)聯(lián)規(guī)則挖掘是數(shù)據(jù)挖掘領(lǐng)域成果頗豐而且比較活躍的研究分支,用于尋找給定數(shù)據(jù)集中數(shù)據(jù)項之間的有趣的關(guān)聯(lián)或相關(guān)關(guān)系。關(guān)聯(lián)規(guī)則揭示了數(shù)據(jù)項間的未知的依賴關(guān)系,根據(jù)所挖掘的關(guān)聯(lián)關(guān)系,可以從一個數(shù)據(jù)對象的信息來推斷另一個數(shù)據(jù)對象的信息。
簡介
本文主要采用R軟件進行數(shù)據(jù)挖掘。R是ISL公司開發(fā)的數(shù)據(jù)挖掘工具平臺,能夠高效分析海量數(shù)據(jù),每一個環(huán)節(jié)中都支持CRISP-DM行業(yè)標準,為用戶提供了大量的人工智能、統(tǒng)計分析的模型,如神經(jīng)網(wǎng)絡(luò),關(guān)聯(lián)分析,聚類分析、因子分析等。它可以幫助用戶輕松獲取、準備以及整合結(jié)構(gòu)化數(shù)據(jù)和文本、網(wǎng)頁、調(diào)查數(shù)據(jù),快速建立和評估模型。
應(yīng)用
本文分別用Apriori算法和改進Apriori算法對數(shù)據(jù)進行處理挖掘,具體結(jié)果如下所示。
Apriori算法
本數(shù)據(jù)采用了顧客在超市購買的數(shù)據(jù)進行分析,涉及意大利面、牛奶、水、面包餅干、咖啡、奶油蛋糕、酸奶、冷藏蔬菜、金槍魚、啤酒、番茄醬、可樂、大米、果汁、咸餅干、油、冰凍魚、冰淇淋、奶酪、罐裝肉多種商品,如果顧客購買了該商品,則記為1,如果沒有購買該商品,則記為0。
數(shù)據(jù)如圖所示:

雖然 Apriori 算法可以直接挖掘生成表中的交易數(shù)據(jù)集,但是為了關(guān)聯(lián)挖掘其他算法的需要先把交易數(shù)據(jù)集轉(zhuǎn)換成分析數(shù)據(jù)集,構(gòu)建的數(shù)據(jù)流如圖 1 所示。

圖?1?商品關(guān)聯(lián)規(guī)則?Apriori?算法挖掘流圖
1 commodity mining association rules Apriori algorithm flow graph
parameter=list(maxlen=10,support=support,confidence=confidence,minlen=i)plot(rules
為了找出每個物品在所有交易中出現(xiàn)的頻繁程度,我們繪制了每個物品的頻率直方圖。

從上圖,我們可以看到milk的出現(xiàn)次數(shù)是最多的,其次是water和pasta。而yoghurt的購買次數(shù)是所有物品中購買次數(shù)最少的物品。
通過格式轉(zhuǎn)換,發(fā)現(xiàn)數(shù)據(jù)源中共有二十種商品,設(shè)最低條件支持度為15%,最小規(guī)則置信度為30%,最大前項數(shù)為5,選擇專家模式,挖掘出大類商品的15條關(guān)聯(lián)規(guī)則,如下圖所示。生成的15條規(guī)則如下所示:
inspect(rules.sorted)

從結(jié)果中可以看到,購買milk的顧客有52%的可能性會購買yoghurt,有51.53%的可能性會購買biscuit。
有49%的可能性會購買coffee。因此,把這些物品放在一起可能會促進銷量。然后,我們將規(guī)則的LHS和RHS繪制成矩陣如下圖所示。
plot(rules, methodft")

矩陣中的點的大小代表規(guī)則出現(xiàn)的頻率。從矩陣中的點的大小,我們可以看到biscuite和milk在規(guī)則中出現(xiàn)的次數(shù)是比較多的,這也和它們在所有交易中出現(xiàn)次數(shù)較多一致。
為了直觀看出物品之間的聯(lián)系,我們將規(guī)則繪制成網(wǎng)絡(luò)圖來表示。如下圖所示。

從上圖可以看到milk和biscuit之間有較強的聯(lián)系,說明顧客中同時購買兩個商品的可能性較大。另外。Coffe和pasta的聯(lián)系也較強,說明顧客同時購買pasta和coffee的可能性也較大。為了查看所有規(guī)則的總體情況,我們將規(guī)則用如下的散點圖表示。從下圖可以看到規(guī)則的置信度在0.2到0.7之間較多,支持度在0.1到0.2之間??偟膩碚f,得到的規(guī)則具有較高的置信度。

分析及建議: 通過圖 2 可以清晰的看到購買牛奶、意大利面、水、咖啡的顧客比較多,建議超市可以加大對這些商品的采購,由上述結(jié)果可知,同時購買牛奶、意大利面的情況占總訂單數(shù)的46.132%,水和牛奶或意大利面和水分別占總訂單數(shù)的27.851%,購買牛奶的人有45.855%會購買意大利面,46.704%的人會購買水,購買意大利面的人有34.824%會購買牛奶,有34.296%的人會購買水,由此可見,意大利面、水、牛奶這三種商品關(guān)聯(lián)度較高,可以將意大利面、水、牛奶擺放在一塊,從而增加銷量。此外,在符合支持度和置信度的條件下沒有顧客購買冷凍食、果汁等,建議有關(guān)人員減少這幾種商品的進貨量,但為了保持商品的多樣性,還是要適當?shù)剡M貨。根據(jù)上述規(guī)則,公司在營銷時可采取了如下策略:(l)將牛奶和意大利面放置在一起或進行捆綁銷售;(2)使小甜餅和咖啡、牛奶三種不同種類商品的貨架相鄰,方便顧客購買。(3)營業(yè)員在顧客購買了一種商品后,適當推薦另一種商品,如顧客購買了牛奶可以對其推薦小甜餅。(4)在生產(chǎn)與發(fā)貨運輸上將關(guān)聯(lián)產(chǎn)品配套安排。采取這些措施后,顧客的交叉消費大為提高,商場與顧客的滿意度也有所提高。
改進CRApriori
"CRApriori"是一個算法的改進版本,該算法是基于Apriori算法的一種頻繁項集挖掘算法。
Apriori算法是一種用于挖掘頻繁項集的經(jīng)典算法。該算法通過掃描事務(wù)數(shù)據(jù)庫來識別頻繁項集,然后使用頻繁項集生成關(guān)聯(lián)規(guī)則。然而,Apriori算法在處理大規(guī)模數(shù)據(jù)集時效率較低,因為它需要多次掃描數(shù)據(jù)庫。
CRApriori算法是對Apriori算法的改進。它通過壓縮數(shù)據(jù)庫的方式來提高算法的效率。具體來說,CRApriori算法使用壓縮后的數(shù)據(jù)結(jié)構(gòu)來存儲事務(wù)數(shù)據(jù)庫,這樣可以減少掃描數(shù)據(jù)庫的次數(shù),從而提高算法的執(zhí)行速度。
CRApriori算法的改進主要體現(xiàn)在以下幾個方面:
數(shù)據(jù)庫壓縮:通過壓縮事務(wù)數(shù)據(jù)庫的方式,減少了算法需要掃描數(shù)據(jù)庫的次數(shù),從而提高了算法的效率。
頻繁項集生成:CRApriori算法使用壓縮后的數(shù)據(jù)結(jié)構(gòu)來生成頻繁項集,這樣可以減少生成頻繁項集的時間。
關(guān)聯(lián)規(guī)則生成:CRApriori算法使用壓縮后的數(shù)據(jù)結(jié)構(gòu)來生成關(guān)聯(lián)規(guī)則,這樣可以減少生成關(guān)聯(lián)規(guī)則的時間。
總而言之,CRApriori算法是對Apriori算法的改進版本,通過壓縮數(shù)據(jù)庫的方式提高了算法的效率,特別是在處理大規(guī)模數(shù)據(jù)集時具有較好的性能。
運用改進算法CRApriori刪除事務(wù)集中不包括候選項集Ci即頻繁i-1項集L(i-1):
改進算法CRAprioriCRApriori=function(support,confidence){for(i in 1:2){ ?#parameter=list(support=support,maxlen=i)frequentsets <- eclat(trans,parameter=list(minlen=i,support=support,maxlen=i))inspect(frequentsets)#查看i項頻繁項集#這里如果支持度選的比較大,也許沒有10這么多,這里就不能寫[1:10].inspect(sort(frequentsets,by="support")[1:10])#排序后查看
按置信度排序,挖掘出大類商品的6條關(guān)聯(lián)規(guī)則,如下圖所示。生成的6條規(guī)則如下所示:





從上圖可以看到milk和biscuit之間有較強的聯(lián)系,說明顧客中同時購買兩個商品的可能性較大。另外。Coffe和pasta的聯(lián)系也較強,說明顧客同時購買pasta和coffee的可能性也較大。
總結(jié)
數(shù)據(jù)挖掘中的關(guān)聯(lián)規(guī)則側(cè)重于不同對象之間的聯(lián)系,本文討論了關(guān)聯(lián)規(guī)則挖掘在超市銷售中的應(yīng)用。利用R 軟件,通過實例分析了頻繁項集及關(guān)聯(lián)規(guī)則生成的過程,采用Apriori算法和改進Apriori算法對數(shù)據(jù)分別進行了解析挖掘,針對挖掘結(jié)果提出了相應(yīng)的建議,對超市的發(fā)展有著重要的現(xiàn)實的意義。
參考文獻
[1]?????? R.Agrawal, T.Imielinski, A.Swami. Mining Association Rules between Sets of Items in Large Databases[M].New York.ACM Press,1993.
[2]?????? 左映華, 高居泰, 李晉宏. 改進Apriori 關(guān)聯(lián)規(guī)則算法的一種改進[J]. 韶關(guān)學院學報, 2004, 25(3): 51-55.
[3]?????? 顏雪松, 蔡之華. 一種基于 Apriori 的高效關(guān)聯(lián)規(guī)則挖掘算法的研究[J]. 計算機工程與應(yīng)用, 2002, 38(10): 209-211.
[4]?????? 王培吉, 趙玉琳, 呂劍峰. 基于 Apriori 算法的關(guān)聯(lián)規(guī)則數(shù)據(jù)挖掘研究[J]. 統(tǒng)計與決策, 2012 (23): 19-21.
[5]?????? 張書敏. 基于改進 Apriori 算法的研究及在電信業(yè)中的應(yīng)用[J]. 信息與電腦 (理論版), 2013, 8: 066.
[6]?????? 朱添福, 舒紅平, 朱冬梅. 改進 Apriori 算法在制造業(yè)中的應(yīng)用[J]. 2010 國際信息技術(shù)與應(yīng)用論壇論文集, 2010.
[7]?????? 姚舜. 關(guān)聯(lián)規(guī)則算法在圖書自動推薦系統(tǒng)中的應(yīng)用[J]. 四川圖書館學報, 2013 (6): 55-58.
[8]?????? 元文娟, 晏杰. 關(guān)聯(lián)規(guī)則挖掘在超市中的應(yīng)用研究[J]. 吉林師范大學學報: 自然科學版, 2013, 34(2): 138-141.
[9]?????? 杜海濤, 陳定方, 張波. 一種基于關(guān)聯(lián)規(guī)則的超市購物籃分析方法[J]. 湖北工業(yè)大學學報, 2008, 23(2): 53-55.
[10]?? 宋鈺. 基于關(guān)聯(lián)規(guī)則算法的超市數(shù)據(jù)挖掘方法分析[J]. 福建電腦, 2009 (7): 94-94.
[11]?? 黃宏本, 盧雪燕. 關(guān)聯(lián)規(guī)則挖掘在超市銷售系統(tǒng)中的應(yīng)用及實現(xiàn)[J]. 梧州學院學報, 2011, 21(3): 59-63.
[12]?? 唐敏. 關(guān)聯(lián)規(guī)則挖掘算法在超市銷售分析中的應(yīng)用[J]. 計算機科學, 2006, 33(2): 149-150.
[13]?? 楊海廷. 改進Apriori 算法挖掘技術(shù)在圖書流通中的實證研究 [J][J]. 圖書館雜志, 2012, 1: 015.
[14]?? Quinlan.J.R. C4.5 Programs for Machine Learning[M]. San Mateo:Morgan Kaufman Publishers, Inc, 1993.
[15]?? Mering, Margaret. RDA: a practical approach. MLNCRDA workshop, Apr. 2011.
[16]?? Schiff, Adam L. Changes from AACR2 to RDA. Part 1: description. An ALCTS Webinar, Feb. 2, 2011.
[17]?? 桂海霞, 孟祥瑞. 一種基于 Apriori 的高效關(guān)聯(lián)規(guī)則挖掘算法的研究[J]. 安徽理工大學學報: 自然科學版, 2009 (4): 55-58.
[18]?? 張興會.數(shù)據(jù)倉庫與數(shù)據(jù)挖掘技術(shù)[M].北京:清平大學出版社,2011.
[19]?? 潘珩.關(guān)聯(lián)規(guī)則挖掘在汽車營銷決策中的應(yīng)用研究[J].成都信息工枵學院學報,2004,19(4):1-4.
[20]?? 朱明.數(shù)據(jù)挖掘[M].第2版,合肥:中國科學技術(shù)大學山版社,2008.